这是我的代码:
HTML
<div id="body">
<div id="left">a</div>
<div id="main">b</div>
<div id="right">c</div>
</div>
CSS:
#body { width: 520px; border:solid 10px #d2d2d2;}
#left { float:left;width:170px;height:200px}
#main { float:left;width:170px;height:400px}
#right { float:left;width:170px;height:200px}
为什么#body不包围div#left,#div#main,div#right
如果我设置display:table就可以了
答案 0 :(得分:19)
添加溢出:隐藏到#body css。
#body { width: 520px; border:solid 10px #d2d2d2; overflow:hidden;}
或强>
在父元素上使用任何类(例如clearfix)。 请参阅CSS Trick文章以供参考: https://css-tricks.com/snippets/css/clear-fix/
答案 1 :(得分:9)
float
属性旨在允许内容通过包含它的块的底部掉落,因为它旨在用于诸如多个段落应该环绕的图像之类的内容。
有关详细信息和示例,请参阅containing floats。
在overflow: hidden
上设置#body
以使容器展开以包含其中的所有浮动元素。或者,请参阅some other techniques。
另一种方法,虽然在特别旧版本的Internet Explorer中不起作用的方法是使用display: inline-block
而不是float
。
答案 2 :(得分:4)
#body {
overflow:hidden;
}
答案 3 :(得分:3)
试试这个:
<div id="body">
<div id="left">a</div>
<div id="main">b</div>
<div id="right">c</div>
<div style="clear:both;"></div>
</div>