使用 Flexbox 的圣杯布局
Holy Grail 布局是一个具有固定高度页眉和页脚的布局,以及一个有 3 列的中心。3 列包括固定宽度 sidenav,流体中心和广告等其他内容的列(流体中心首先出现在标记中)。CSS Flexbox 可用于通过非常简单的标记实现此目的:
HTML 标记:
<div class="container">
<header class="header">Header</header>
<div class="content-body">
<main class="content">Content</main>
<nav class="sidenav">Nav</nav>
<aside class="ads">Ads</aside>
</div>
<footer class="footer">Footer</footer>
</div>
CSS:
body {
margin: 0;
padding: 0;
}
.container {
display: flex;
flex-direction: column;
height: 100vh;
}
.header {
flex: 0 0 50px;
}
.content-body {
flex: 1 1 auto;
display: flex;
flex-direction: row;
}
.content-body .content {
flex: 1 1 auto;
overflow: auto;
}
.content-body .sidenav {
order: -1;
flex: 0 0 100px;
overflow: auto;
}
.content-body .ads {
flex: 0 0 100px;
overflow: auto;
}
.footer {
flex: 0 0 50px;
}