请看我的代码:http://jsfiddle.net/XptrZ/为什么蓝色的div不在红色的div里面,而且红色的div高度为0。我该如何解决这个问题?谢谢。
将overflow: hidden
添加到父级元素。
.parent {
background-color: gold;
border: 1px solid gold;
position: relative;
overflow: hidden
}
.child {
float: left;
width: 100px;
height: 100px;
display: block;
margin: 10px;
background-color: pink;
border: 1px solid #999;
}
<div class="parent">
<div class="child">div1</div>
<div class="child">div2</div>
<div class="child">div3</div>
</div>
<div style="clear:both"></div>
在父元素中添加 display: table;。这样就可以了。
display: table
不支持 IE7 及以下版本 - http://www.quirksmode.org/css/display.html。"以下版本" - 这可能不是一个大问题,但你仍然需要考虑 IE7。 - Zoltan Toth
overflow: hidden
建立了一个新的块级格式化上下文(http://www.w3.org/TR/CSS21/visuren.html#block-formatting),并再次成为浮动元素的父元素。 - Zoltan Toth