以下是我用来实现上述布局的代码:
.header { height: 50px; } .body { position: absolute; top: 50px; right: 0; bottom: 0; left: 0; display: flex; } .sidebar { width: 140px; } .main { flex: 1; display: flex; flex-direction: column; } .content { flex: 1; display: flex; } .column { padding: 20px; border-right: 1px solid #999; } <div class="header">Main header</div> <div class="body"> <div class="sidebar">Sidebar</div> <div class="main"> <div class="page-header">Page Header. Content columns are below.</div> <div class="content"> <div class="column">Column 1</div> <div class="column">Column 1</div> <div class="column">Column 1</div> </div> </div> </div>
我省略了用于样式化的代码。你可以在笔里看到所有这些。
上述方法是有效的,但是当内容区域的内容溢出时,会导致整个页面滚动。我只想让内容区域本身滚动,所以我在内容div中添加了overflow: auto。
现在的问题是,列本身并没有超出它们的父高度,所以边界也在那里被切断了。
这支笔显示了滚动问题。
如何将内容区域设置为独立滚动,同时仍然让其子区域超出内容框的高度?