Я хочу використовувати повнорозмірний додаток за допомогою flexbox. Я знайшов те, що хочу, використовуючи старий модуль макета flexbox ( display: box;
та інші речі) за цим посиланням: CSS3 Flexbox full-height app and overflow
Це правильне рішення для браузерів, які підтримують лише стару версію властивостей CSS flexbox.
Якщо я хочу спробувати використовувати новіші властивості flexbox, я спробую використати друге рішення за тим самим посиланням, яке вказано як хак: використання контейнера з height: 0px;
. Це дозволяє показати вертикальний сувій.
Мені це не дуже подобається, оскільки це призводить до інших проблем, і це швидше обхідний шлях, ніж рішення.
html, body {
height: 100%;
}
#container {
display: flex;
flex-direction: column;
height: 100%;
}
#container article {
flex: 1 1 auto;
overflow-y: scroll;
}
#container header {
background-color: gray;
}
#container footer {
background-color: gray;
}
<section id="container" >
<header id="header" >This is a header</header>
<article id="content" >
This is the content that
<br />
With a lot of lines.
<br />
With a lot of lines.
<br />
This is the content that
<br />
With a lot of lines.
<br />
<br />
This is the content that
<br />
With a lot of lines.
<br />
<br />
This is the content that
<br />
With a lot of lines.
<br />
</article>
<footer id="footer" >This is a footer</footer>
</section>
Я також підготував JSFiddle з базовим прикладом: http://jsfiddle.net/ch7n6/
Це повнорозмірний веб-сайт HTML, і нижній колонтитул знаходиться внизу, завдяки властивостям flexbox елемента вмісту. Я пропоную вам перемістити стовпчик між кодом CSS і результатом, щоб імітувати різну висоту.
flex-shrink:0
як до колонтитулу, так і до колонтитулу.