html部分
<div class="parent">
<div class="child"></div>
</div>
css部分
.parent{
width: 500px;
height: 600px;
background: pink;
}
.child{
width: 200px;
heihgt: 200px;
background: green;
margin-top: 20px;
}
通过看效果可以看得出来, child设置margin-top, parent也跟着一起下移了, 这是由于父元素跟子元素没有东西分割开(padding或border)就导致了父子两个元素的上边沿重合, 公用了一个margin。(此边距合并只存在于普通文档流)
解决办法:
父元素做些样式修改
1,parent 设置 padding-top: 1px;
2,parent 设置 border: 1px solid transparent;
3,parent 设置 overflow: hidden;
4,parent 脱离普通文档流,绝对定位或浮动(position,float)。