使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。
1. 相邻块元素垂直外边距的合并:
- 当上下两个相邻的两个块元素(兄弟元素)相遇时,如果上面的元素有下边距margin-bottom,下面的元素有上边距margin-top。则它们之间的距离不是两者之和,而是其一的最大值。
- 解决方案:避免这种写法。
2. 嵌套块元素垂直外边距的塌陷:
- 对于两个嵌套关系(父子)的块元素,父元素有上边距,同时子元素也有上边距,此时父元素会塌陷较大的外边距值。
- 解决方案:
- 给父元素定义上边框;
- 给父元素定义上内边距; (和上一种一样,都是与子元素分开)
- 给父元素添加:overflow: hidden; (比较常用)
- 还有其他方法,比如浮动、固定、绝对定位的盒子不会有塌陷问题。