【发布时间】:2021-08-26 14:27:53
【问题描述】:
我想要实现的布局是经典的页眉 + 侧边栏 + 内容 + 页脚,flex 填充整个屏幕。
我不明白该怎么做是让侧边栏内容填满屏幕空间(不是 html 页面而是屏幕),如果它的内容比容器高,让它滚动。
这里是示例代码
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: 0;
}
.wrapper {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.side {
display: flex;
flex-direction: column;
background-color: lime;
}
.row-wrapper {
flex-grow: 1;
display: flex;
background-color: orange;
flex-direction: row;
}
.footer {
height: 40px;
background-color: purple;
}
.col-wrapper {
flex-grow: 1;
display: flex;
flex-direction: column;
background-color: lightgreen;
}
.header {
background-color: yellow;
}
.content {
flex-grow: 1;
background-color: gold;
}
<div class="wrapper">
<div class="row-wrapper">
<div class="side"> side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>side<br/>
</div>
<div class="col-wrapper">
<div class="header">
header
</div>
<div class="content">
content
</div>
</div>
</div>
<div class="footer">
footer
</div>
</div>
查看侧边栏中的内容如何推动其高度,从而使整个页面滚动而不是仅侧边栏。内容也是如此。
【问题讨论】:
-
你可以使用
GRID。使用网格布局要容易得多。 -
是的,我可以,但我不想这样做。无论如何,谢谢你的提示。
标签: css layout scroll flexbox overflow