У меня есть сайт с динамическим содержимым, на котором я хочу, чтобы один раздел занимал оставшуюся высоту экрана, но предостережение заключается в том, что если содержимое этого раздела приведет к тому, что высота страницы превысит высоту области просмотра, яЯ хочу остановить высоту раздела в нижней части экрана и добавить вертикальную полосу прокрутки только для этого раздела.
Я использую CSS Flexbox.Вот очень упрощенная версия разметки и CSS:
body, div, h1, h2, html, p {
margin: 0;
padding: 0;
}
body,
html {
height: 100%;
}
.siteContainer {
background: gold;
display: flex;
flex-direction: column;
min-height: 100%;
}
.contentContainer {
background: lightblue;
display: flex;
flex: 1;
flex-direction: column;
}
.subcontentContainer {
background: pink;
flex: 1;
overflow-y: scroll;
}
<div class="siteContainer">
<h1>Header</h1>
<div class="contentContainer">
<h2>Subheader</h2>
<div class="subcontentContainer">
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
<p>Some text here.</p>
</div>
</div>
</div>
Предполагая, что ваш экран имеет некоторую высоту, вы должны увидеть, что розовая часть занимает большую часть экрана, и текст не должен идти вертикально за пределы экрана..
Однако, если вы скопировали и вставили часть <p>Some text here.</p>
несколько раз, чтобы текст исчез с экрана, вы увидите, что полоса прокрутки в окне просмотра включена.
Вместо полосы прокрутки окна просмотра я хочу остановить содержимое в нижней части экрана (предположительно, с помощью overflow-y
или что-то в этом роде) и добавить полосу прокрутки только к розовому сечению, а не иметь полосу прокрутки для области просмотра.
Возможно ли это только с помощью CSS, и если да, то как?Спасибо.