【发布时间】:2017-09-03 11:11:34
【问题描述】:
我有一个固定高度的浮动 div (class='outer') 和动态内容 (class='inner')。内容的尺寸事先不知道。浮动的div的宽度必须是灵活的,但仍然有一些最大值:
<style>
.outer {
border: 1px solid;
height: 200px;
max-width: 400px;
overflow: auto;
float: left
}
.inner {
height: 300px;
width: 300px;
background-color: red
}
</style>
<body>
<div class='outer'>
<div class='inner'></div>
</div>
<span>Text here</span>
</body>
这通常有效;但是,如果内容高度过高,则会发生以下情况:
-
.outer假定内容的宽度,因为它低于其max-width。 -
.inner被强制转换为height的.outer并因此出现垂直滚动条。 -
.inner被强制设置为新的受约束宽度,因为.outer不会再次调整大小以适应滚动条。 - 结果出现了完全不必要的水平滚动条。
小提琴: https://jsfiddle.net/w053kLkw/
有没有办法阻止overflow 的这种机制,并且只在需要时才出现两个滚动条?
【问题讨论】:
-
你试过
.outer {display:table;}吗? -
@Roysh 这似乎覆盖了
height: 200px,我没有得到想要的垂直滚动 -
你能发布一些示例内容吗?
-
@Roysh 我已经发布了小提琴
-
尝试使用
display:inline-block;而不是float:left;jsfiddle.net/w053kLkw/2