问题描述:
互相嵌套块级元素,如果给子元素设置margin-top会作用在父元素身上,这种现象就是嵌套块级元素塌陷。
tips:只有上下外边距才会有塌陷,左右外边距不会产生这种问题。
解决办法:
- 给父元素设置padding-top或者border-top
- 给父元素设置overflow:hidden;
- 把子元素转换为行内块display:inline-block;
- 浮动、绝对定位、相对定位的盒子不会有嵌套块级元素外边距塌陷现象
代码案例
<!--HTML-->
<div class="father">
<div class="son"></div>
</div>
/*css*/
* {
margin: 0;
padding: 0;
}
.father {
width: 300px;
height: 300px;
background-color: pink;
/* padding-top: 1px; */
/* border-top: 1px solid transparent; */
/* overflow: hidden; */
}
.son {
/*display: inline-block;*/
/* float: left; */
margin-top: 20px;
width: 200px;
height: 200px;
background-color: purple;
}