Я хочу использовать полноразмерное приложение с помощью 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 и результатом, чтобы имитировать разную высоту.