什么是外边距塌陷?满足以下条件就会产生外边距塌陷现象:
demo:演示~
html:代码
<div class="father">
<div class="son">
</div>
</div>
css代码:
<style>
* {
margin: 0;
padding: 0;
}
.father {
width: 300px;
height: 300px;
background-color: red;
}
.son {
width: 100px;
height: 100px;
background-color: green;
}
</style>
此时浏览器显示效果如下:
然后让上面的月经红和下面的帽子绿有点小距离然后给子元素加一个margin-top: 50px; 代码如下:
<style>
* {
margin: 0;
padding: 0;
}
.father {
width: 300px;
height: 300px;
background-color: red;
}
.son {
width: 100px;
height: 100px;
background-color: green;
margin-top: 50px;
}
</style>
这时候你会发现不是想要的效果:
给儿子一个上边距,爹也跟着有了外边距,这就是外边距塌陷,解决方案?
解决方案:
1. 给父元素加边框border
2. 给父元素加内边距padding
3. 给父元素加overflow:hidden
弊端:
1.给父元素加边框或者内边距都会导盒子变大,记得清除边距
此三种方式任意一种都可以轻松解决外边距塌陷问题,效果如图下图所示:
<style>
* {
margin: 0;
padding: 0;
}
.father {
width: 300px;
height: 300px;
background-color: red;
/* border: 1px solid blue; */
/* padding: 1px; */
overflow: hidden;
}
.son {
width: 100px;
height: 100px;
background-color: green;
margin-top: 50px;
}
</style>