我有一个固定大小的绝对定位区域,滚动条包含可变大小的内容。
现在我需要将内容包装在两个 div 中,这些 div 至少与 area 一样大,但可以扩展以适应内容。
<div id="area">
<div id="outer">
<div id="inner">
<div id="content">content</div>
</div>
</div>
</div>
要求:
- 它们需要扩展,因此它们的高度必须设置为自动。
- 为了填充容器,它们的最小尺寸必须为 100%
因此,我尝试了以下 CSS(JsFiddle中的完整示例):
#area {
/* defined outside */
position: absolute;
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
overflow: scroll;
}
#outer, #inner {
min-width: 100%;
min-height: 100%;
}
它确实有效,#outer
但对#inner
. 我该如何解决?
更新 如果有帮助,我只对 Chrome 感兴趣。
另外,我可以接受,如果指向一些权威来源并进行解释,这可能是不可能的。
更新 2
因此,我分析了 CSS 规范并得出无法满足我的要求的结论:
要使最小高度起作用,它必须绝对定位,或者它包含的块高度不能依赖于内容高度CSS2(10.7)
我需要自动调整大小,因此既
#inner
不能也#outer
不能绝对定位。这意味着包含块必须具有指定的高度。因此
#outer
不能包含#inner
. 这给我留下了#area
.根据CSS2(10.1),只有
#inner
当元素绝对定位时才有可能,这与我的目标冲突。