Таким образом, одна проблема заключается в том, что нет необходимости в элементе <main2>
или классе .submain
, как вы назвали его в скрипке.
Главное, на что нужно обратить внимание, это то, чтоВы хотите, чтобы некоторые из элементов flex (я специально говорю о потомках родителя с display: flex
) имели фиксированный размер (например, верхний и нижний колонтитулы), а некоторые - переменный размер.Для этого вы можете использовать комбинацию flex: none
и flex: 1 1
* {
box-sizing: border-box;
}
.height-limit {
height: 10rem;
display: flex;
flex-direction: column;
}
header {
flex: none;
padding: 1rem;
background: #bdc3c7;
}
.main {
flex: 1 1;
padding: 1rem;
display: flex;
flex-direction: column;
background: #e74c3c;
}
.content {
flex: 1 1;
overflow: auto;
background: #3498db;
}
footer {
flex: none;
padding: 1rem;
background: #2ecc71;
}
<div class="height-limit">
<header>header</header>
<div class="main">
<div class="content">
some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body some body
</div>
<footer>footer</footer>
</div>
</div>