【发布时间】:2016-06-10 11:06:25
【问题描述】:
我正在尝试使用 flexbox 创建布局,但我很困惑为什么我不能强制我的 UI 的特定部分溢出滚动条。一切似乎都很好,直到添加了一个似乎扩展了一切的大孩子。
这是笔:http://codepen.io/tuckwat/pen/NNWRaB?
注意滚动条出现在整个页面上,当孩子变得太大时,我希望滚动条出现在#view 容器(深蓝色)上。
这是一支带有溢出的笔:自动添加到#view - http://codepen.io/tuckwat/pen/VawKyp
我怎样才能让这个布局工作?我不想在视图上使用绝对定位,因为侧边栏或应用栏可以动态调整大小。
HTML
<div id="body">
<div id="appbar">appbar</div>
<div id="main">
<div id="sidebar">side</div>
<div id="content">
<div id="navbar">nav</div>
<div id="view">
This view container should scroll
<div id="view-content">
This content makes the view grow too large
</div>
</div>
</div>
</div>
</div>
CSS
#body{
background: #ccc;
display:flex;
flex-direction: column;
position:absolute;
left: 0px;
right: 0px;
bottom: 0px;
top:0px;
}
#appbar{
height:55px;
}
#main{
display: flex;
flex:1;
background: #ddd;
}
#sidebar{
height:100%;
background:#660099;
width:50px;
flex-shrink:0;
}
#content{
display:flex;
flex:1;
flex-direction:column;
}
#navbar{
height:20px;
background:#3cd;
}
#view{
flex:1;
background:#126;
overflow: auto;
}
#view-content{
width:1500px;
height:1500px;
background: #ff6600;
}
【问题讨论】:
-
作为参考,这就是我希望它看起来的样子(除了我对视图使用了绝对定位):codepen.io/tuckwat/pen/RawGJL
-
您的代码正在运行.. 请在
divview-content添加更多内容以查看滚动条.. -
看起来它在 IE 中工作(令人惊讶),但在其他浏览器中呈现不同。 Chrome 是我的目标浏览器。