子标签的margintop为什么不能撑开父标签的高度?

html<div class="a">
    <div class="b">bbbbbbb</div>
</div>
cssbody {
    padding: 0;
    margin: 0;
}
.a {
    background: red;
}
.b {
    background: blue;
    margin-top: 10px;
}

http://jsfiddle.net/nhk6g1qx/1/
父标签高度没有被撑开但留出了10像素的高度

而给a增加padding-top:10红色背景顶部出现了20的高度
http://jsfiddle.net/nhk6g1qx/4/

阅读 13.3k
4 个回答

这是因为垂直方向的margin会重合,有三种方法修复这个问题
1. 给父元素添加border或padding(top)
2.float父元素
3.设置父元素的position
。。。

推荐问题
宣传栏