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;
}演示版