Я считаю, что это вид очень простой вопрос, но я не могу понять, хорошее решениеЗаголовок/Контент/Нижний колонтитул внутри определенного div?
Как я могу иметь заголовок
- : всегда на вершине
- сноске: всегда на нижней
- содержание: прямо под заголовком. он должен начинаться сразу после заголовка, и если содержимого слишком много, его следует прокручивать.
в пределах определенного div? а не весь экран
Я пытался с помощью гибкой коробки и прекрасно работал, когда в content
было много контента, но когда есть только несколько из содержимого в content
, вы можете по центру :(. Я хочу, чтобы он был выровнен по высоте .
Вот что я сделал до сих пор: http://fiddle.jshell.net/nacho4d/ddv7ytkf/1/
HTML:
<div id="main">
<div style="background-color:lightblue;" class="header">Header - height is variable but just a couple of lines at maximum. Should not overflow</div>
<div style="background-color:khaki;" class="content">
<div>
Content - height is variable. There could be a lot of content here so its overflow should be auto.<br/>
"Lorem ipsum ... Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? "
</div>
</div>
<div style="background-color:pink;" class="footer">Footer</div>
</div>
CSS:
#main {
width: 400px;
height: 250px;
border: 1px solid #c3c3c3;
display: flex;
display: -webkit-flex;
-webkit-justify-content: space-between;
justify-content: space-between;
-webkit-flex-direction: column;
flex-direction: column;
}
.header {
}
.content {
overflow:auto
}
.footer {
}
ОТВЕТ:
В основном такой же, как @Abhitalks ответ, я просто добавил WebKit префиксы поставщика: http://fiddle.jshell.net/nacho4d/ddv7ytkf/11/ Он отлично работает!
Я читал о flex-basis, но все равно не понимаю. Как это работает? Что это значит на самом деле? – nacho4d
@ nacho4d: Flex позволяет элементам расти или уменьшаться по мере необходимости, чтобы заполнить доступное пространство. 'flex-basis' определяет, какую ширину/высоту следует использовать в качестве * основы * для роста или сокращения сгибаемого элемента. Вы можете видеть это как начальное измерение. Например, если вы даете 'flex-basis'' 100px' и 'flex-grow' как' 1'; то элемент будет начинаться с '100px' и будет расти в 1 раз по сравнению с другими братьями и сестрами. – Abhitalks