margin 的塌陷问题

213 阅读1分钟

margin 的塌陷问题

盒子的塌陷问题也叫作重叠问题

1. 兄弟元素塌陷问题

兄弟元素之间,若上边元素设置了margin-bottom且下边元素设置了margin-top,最终两盒子之间的间距并不是两外边距之和,而是取两者之间较大者。

note :

  • 垂直方向上外边距相撞时,取较大值
  • 浮动元素的外边距不合并 代码如下:

image.png 效果如图: image.png

2. 父子元素塌陷问题

(1)当父元素与子元素都设置了margin-top值,并且两个属性之间没有其他内容进行隔离时,会导致父元素与子元素的两个属性相遇发生margin塌陷问题。

(2)当父元素本身与上一个元素的距离是0时,子元素上如果设置了margin-top,则父元素会随着子元素一起掉下来。

image.png 左图是小盒子没有加margin-top的效果,右图是小盒子加margin-top的效果

解决方法:

①父元素设置overflow:hidden;
②父元素或者子元素设置float
③父元素设置border:1px solid transparent;
④父元素设置padding-top:1px;