我有以下布局,有2级浮动容器:
<div id="navigation" style="float: left; width: 150px; height: 200px; background-color: #eee">Navigation</div>
<div id="container" style="margin-left: 150px; background-color: #f00">
<div style="float: left; width: 50%; height: 100px; background-color: #ff0">Block</div>
<div style="float: left; width: 50%; height: 20px; background-color: #f0f">Block</div>
<div style="clear: both"></div>
<div style="float: left; width: 50%; height: 50px; background-color: #00f">This Block</div>
</div>
您可以在http://jsfiddle.net/dNmNj/看到它。
我的目的是清除#container
的浮点数,使蓝色块(This Block
)保持在黄色块(不是粉红色)之下。但是,结果是它还清除了#navigation
的浮点数。
如何为父容器而不是任何祖先容器清除浮动?
答案 0 :(得分:10)
您可以通过overflow:hidden
添加#container
来实现您的目标:
这是关于清除花车的好文章
http://www.quirksmode.org/css/clearing.html
但你的蓝色div掉落的原因是因为#container div没有浮动 - 只剩下边距
以下显示了一个更具跨浏览器兼容性的返工: