【发布时间】:2011-12-08 07:44:15
【问题描述】:
假设我有这个 HTML 结构:
<div class="a">
<div class="floated-left">...</div>
<div class="floated-left">...</div>
</div>
我注意到如果我不将overflow:hidden 设置为.a,那么<div class="a"> 不会占用任何垂直大小。例如,如果我将其背景设置为红色,则它根本不可见。用 FireBug 检查它表明它在那里,但几乎没有垂直大小。
要解决这个问题,我发现我必须将overflow:hidden 设置为.a。然后第一个<div> 遍历其所有内容。
这是一个真实的例子:
<html>
<head>
<style>
.a { background-color: red; }
.b { background-color: red; overflow: hidden }
.floated-left { float: left; width: 100px; height: 100px; background-color: blue; }
</style>
</head>
<body>
<p>div with class a, that doesn't overflow:hidden:</p>
<div class="a">
<div class="floated-left">Hi,</div>
<div class="floated-left">Mom!</div>
</div>
<div style="clear:both"></div>
<p>div with class b, that does overflow:hidden:</p>
<div class="b">
<div class="floated-left">Hi,</div>
<div class="floated-left">Dad!</div>
</div>
</body>
</html>
注意Hi, Mom! 没有获得红色背景(没有溢出:隐藏),而Hi, Dad! 确实获得了红色背景(有溢出:隐藏)。
谁能解释这种行为?
这里是例子的截图:
谢谢,博达·赛多。
【问题讨论】: