给定以下代码:
<div id='upperDiv' style='min-height:200px'>
<div id='rightDiv' style='float:right; width:75%'>
content1
</div>
<div id='leftDiv' style='float:left; width:25%'>
content2
</div>
</div>
<div id='lowerDiv' style='height:50px; margin-top:5px'>
content3
</div>
当rightDiv
和leftDiv
的内容超过200px高度(min-height
的值)时,upperDiv
不会增长,因此其内容与较低的div重叠。
如果从大型内容中删除float属性,则该属性会增大并导致问题。
我不知道rightDiv
和leftDiv
中哪一个的高度超过了200px。
如何解决这个问题?
4条答案
按热度按时间zlwx9yxi1#
将
#upperDiv
设置为以下任意值:或
或者使用CSS伪元素(兼容IE8+)创建规则,如下所示
最佳解决方案
创建可重用的类规则,如下所示。
现在你可以把它应用到任何需要相同功能的东西上。
P.S.如果您需要IE 6/7兼容性,请检查this post。
w7t8yxp52#
这是有意的,因为浮动是为段落中的图像(多个段落可以环绕图像)等内容设计的。
复杂螺旋有一个fuller explanation至于为什么和艾德埃利奥特描述了一些approaches to making containers expand around floats。我发现
overflow: hidden
的方法在大多数情况下工作得最好。a14dhokn3#
之后
加
它会解决你的问题。
but5z9lq4#
最近引入了一个新属性
display: flow-root;
,它将修复这个问题,没有任何黑客攻击,并几乎所有的主要支持