У меня есть следующий макет на моей веб-странице:
Левая сторона, представленная здесь D
, идеальна.Там много контента, и он прокручивается как следует.Даже когда содержимое увеличивается, высота остается на 100% высоты веб-страницы, а прокрутка увеличивается.
Правая сторона имеет некоторый контент на B
.Все хорошо.При использовании Bootstrap 4 B
и A
являются row
внутри col
и, как таковые, имеют 50% долю в родительском контейнере.
Проблема в том, что я бы A
заполнил все оставшееся пространство, будучи прокручиваемым, независимо от количества C
s внутри него.Это означает, что при 1 C
он должен иметь высоту, равную половине высоты страницы (как показано на рисунке), и имея 20 C
с, он должен занимать ту же высоту (при возможности прокручиваться так, чтобы пользовательможно увидеть 20-е C
, прокрутив до нижней части A
).
Итак, я могу добиться вертикальной прокрутки на A
, если установить жестко заданную высоту как height=350px
, но этодалеко от идеала, так как рабочие столы имеют разную высоту.С другой стороны, если я не установлю высоту, высота A
станет высотой, необходимой, чтобы обернуть все элементы внутри нее, так что с 4 C
s расположение справа-bg уже превосходит левую частьвеб-страницы, что нарушает общий макет.
<div class="right-bg">
<div class="container col" style="height:100%">
<div class="row"> <!-- THIS IS B -->
<div class="col">
<div class="row" id="chart-div">
<canvas id="myChart"></canvas>
</div>
<div class="row horizontal-menu-wrapper">
</div>
</div>
</div>
<div class="container row ranking-container"> <!-- THIS IS A -->
<div class="container rounded-card"> <!-- THIS IS C -->
<div class="row">
<div class="col-lg-1 col-md-1 col-sm-1">
<div id="ranking-trophy-header" class="row card-header">
<i title="General" class="fas fa-trophy header-icon"></i>
</div>
</div>
<div class="col-lg-11 col-md-11 col-sm-11">
<div class="row row-card">
<div class="col-lg-5 col-md-5 col-sm-5">
<p class="ranking-percentage-value"> Top 1%</p>
</div>
<div class="col ranking-field">
<p class="form-field">Position</p>
<p class="form-ranking-value"><span class="absolute-ranking">#<span class="absolute-ranking-value">83</span></span></p>
</div>
<div class="col ranking-field">
<p class="form-field">Pool</p>
<p class="form-pool-value">9470</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
CSS:
html {
height: 100%;
}
body {
height: 100%;
}
.left-bg {
flex-flow: column;
display: flex;
width: 54%;
height: 100%;
overflow: scroll;
padding-bottom: 10px;
}
.right-bg {
flex-flow: column;
display: flex;
width: 46%;
height: 100%;
padding-top: 12px;
}
.ranking-container {
vertical-align: center;
margin: 5px;
margin-top: 15px;
margin-bottom: 5px;
padding: 15px;
overflow: scroll;
border-radius: 10px;
margin-bottom: -9999px;
padding-bottom: 9999px;
}