CSS外边距合并问题
今天上前端课做练习的时候遇到了外边句合并的问题,当时没想起来是外边距合并的问题,浪费了很多时间,最后还是老师提醒,才想起来
外边距合并问题是前端开发经常遇到的问题,在开发中主要有两种情况。
- 相邻块级元素垂直外边距的合并
- 嵌套块级元素垂直外边距的塌陷
相邻块级元素垂直外边距合并
可见,同时拥有margin值的两个盒子,取其中较大值。所以在开发中,只设置一个值即可避免相邻块级元素垂直外边距合并。
嵌套块级元素垂直外边距的塌陷
可见,两个嵌套关系的块级元,子元素的上外边距会影响父元素的上外边距。当父元素没有上外边距时,给子元素设置上外边距,父元素会跟着一起塌陷下来;当父元素和子元素都有上外边距的时候,父元素会塌陷较大值的上外边距。
解决办法:
- 为父元素定义一个上边框
- 为父元素定义上内边距
- 为父元素添加overflow: hidden
<style>
* {
margin: 0;
padding: 0;
}
.bigbox {
width: 500px;
height: 500px;
background-color: skyblue;
margin-top: 100px;
/* 方案一:为父元素定义一个上边框 */
/* border-top: 1px solid transparent; */
/* 方案二:为父元素定义上内边距 */
/* padding-top: 1px; */
/* 方案三:为父元素添加overflow: hidden */
overflow: hidden;
}
.box {
width: 300px;
height: 300px;
background-color: greenyellow;
margin-top: 150px;
}
</style>
以上任意一个方案都可以解决嵌套块级元素垂直外边距塌陷的问题
阅读剩余
THE END