增加包含浮动嵌套div的父div的高度
我似乎无法自动增长我的父母div的高度基于其浮动子div。 所有的孩子都漂浮着,占据空间,然后包裹到下一行。 可以有不断变化的stream动孩子数量,父母必须自动调整身高。 (父div作为所有浮动div的背景)。 在父div下面还有第二个div,需要向下推,这样才能在浮动div下面。
这个解决scheme在IE中是非常重要的。
你可以插入一个div来清除最后一个孩子之后的浮动元素。
HTML:
<div style="clear: both"></div> <!-- This goes after the last floated element - no floating elements are allowed on either side of this. -->
小提琴: http : //jsfiddle.net/Rc5J8/
如果父容器只有浮动子,则没有高度。 将以下CSS添加到父容器应该有所帮助:
.parent { overflow:hidden; width: 100%; }
阅读这篇文章的更多信息: http : //www.quirksmode.org/css/clearing.html 。
你需要clear
浮动的元素,他们的父母的高度将崩溃。
当前接受的答案是正确的,但通过应用clearfix hack或overflow: hidden
清除浮动通常是一个更好的主意overflow: hidden
到包装的父元素,以便边距继续按预期方式运行,并清除空的HTML元素。
overflow
方法:
CSS:
.wrap { overflow: hidden } .box { float: left; }
标记:
<div class="wrap"> <div class="box"> Content </div> <div class="box"> Content </div> </div>
clearfix
-method,如上所链接:
CSS:
.cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } .cf { *zoom: 1; } .box { float: left; }
标记:
<div class="wrap cf"> <div class="box"> Content </div> <div class="box"> Content </div> </div>
在父元素上添加overflow
css属性可以解决这个问题(不需要一个空&丑陋的div元素来清除浮点数):
.parentelement { overflow:auto; display: block; width: 100%; }
我添加了显示和宽度属性,因为一些浏览器将需要定义这些属性。
您需要将clearfix应用于父级,因为浮动元素将从文档stream中移除,而不会自动向父级内容添加任何高度。 Clearfix指示父对象的高度足以清除最后一个浮动的子对象。 这种方法已经很完善,可以在各种浏览器中使用。