【发布时间】:2018-05-25 04:13:14
【问题描述】:
我有一个父 div 具有固定或计算的高度和宽度。旁边是固定宽度,内容很大。源代码如下。
- 父级(蓝色)可能位于其他容器中,因此大小不确定。
- 侧面(绿色)具有固定宽度。
- 内容容器(紫色)具有增长宽度,将填满剩余的宽度,而实际内容很少。
- 大内容(橙色)的内容非常大。
我的愿望是当内容变大时,滚动条应该出现在内容容器中(紫色)。但是当我将overflow: auto; 设置为父容器和容器时,出现了垂直滚动条,但父容器底部出现了水平滚动条。
一种解决方案是将固定宽度设置为紫色容器,例如width: calc(100vw - 100px)。但是我很困惑为什么即使我设置了溢出属性,紫色的宽度也比blue - green大。
https://codepen.io/anon/pen/eragzy
.p {
display: flex;
background: blue;
padding: 10px;
overflow: auto;
width: 400px;
height: 300px;
}
.aside {
background: green;
flex: 0 0 100px;
margin-right: 10px;
}
.content {
/* width: calc(400px - 130px); */
padding: 10px;
background: purple;
flex: 1 0 auto;
overflow: auto;
overflow-x: auto;
overflow-y: auto;
}
.large {
background: orange;
width: 1000px;
height: 800px;
}
<div class="p">
<div class="aside">
aside (fix width)
</div>
<div class="content">
<div class="large">
large content (need scrollbar)
</div>
</div>
</div>
【问题讨论】: