外边距塌陷

参考文章:https://developer.mozilla.org/zh-CN/docs/Web/CSS/margin_collapsing

外边距重叠其实指的是top和bottom的margin的重叠,一共有三种情况:

  1. 两个相邻元素,后一个元素(如果没有使用清楚浮动)的margin-top和前一个兄弟元素的margin-bottom会合并

  2. 父级块元素中的第一个子元素在和父元素顶部没有border, padding, inline-content, clearance (清楚浮动)分隔;父级块元素的 margin-bottom 与它的最后一个子元素之间没有border、padding、inline content、height、min-height、max-height 分隔

  3. 如果块元素 margin-top 与 margin-bottom 之间没有border、padding、inline content、height、min-height来分隔,那么它的上下外边距合并。——因为根元素也是个BFC


消除外边距重叠

根据上面的定义,对于相邻元素没有border, padding等的情况,彼此设置一个1px的透明edge即可

也可以给两个相邻元素设置包含块为BFC,因为只有同BFC内的子元素上下margin会发生重叠


对于浮动元素,绝对定位,分属不同BFC内的元素,不会有边距重叠的现象