你可以用
Flexbox
或
Grid
布局。标记对于两者都是相同的,并且都不依赖于已知的高度或计算。
HTML
<div class="container">
<header>Header</header>
<div class="body">
<div class="body-content">Body</div>
</div>
<footer>Footer</footer>
</div>
选项1:flex css
.container {
display: flex;
flex-direction: column;
overflow: hidden;
}
.body {
flex: 1 1 auto;
overflow: auto;
}
header,
footer {
flex: 0 0 auto;
}
选项2:网格CSS
.container {
display: grid;
grid-template:
"header" auto
"body" 1fr
"footer" auto;
}
.body {
overflow: auto;
}