先贴上css文档的相关描述:
这里说的是,一个元素,它的上外边距和下外边距塌陷时的情况。
按照第二条规则,此元素的上边框边界的位置应该和下边框宽度非0时的位置相同。
可是我的实践跟css规范上描述的是不同的。
没有发生边界塌陷时的代码如下:
//css
.box{
margin-top:10px;
margin-bottom:20px;
border-bottom:1px solid red;
}
.item{
float:left;
}
//html
<div class='box'>
<div class='item'>今天天气不错</div>
</div>
这个时候页面效果如下图所示:
按照理论,元素上边框边界的位置应该就是这条红线,距离页面顶部10像素。
我将元素的下边界边框去掉,此时会发生外边距塌陷。代码修改如下:
//css
.box{
margin-top:10px;
margin-bottom:20px;
//border-bottom:1px solid red;
}
.item{
float:left;
}
//html
<div class='box'>
<div class='item'>今天天气不错</div>
</div>
这个时候的页面效果如下图所示:
很明显,文本所在的元素具体页面顶部的距离是20px。可是,按照css文档上的规则,不应该是距离页面顶部10px吗?
我使用的是Chrome浏览器。我的疑问是:
1.是不是我没有正确理解css文档规则?
2.是不是chrome浏览器没有实现此css规则?
请赐教!
float元素是不能把父级元素撑高的