参考文章:https://developer.mozilla.org/zh-CN/docs/Web/CSS/margin_collapsing
外边距重叠其实指的是top和bottom的margin的重叠,一共有三种情况:
两个相邻元素,后一个元素(如果没有使用清楚浮动)的margin-top和前一个兄弟元素的margin-bottom会合并
父级块元素中的第一个子元素在和父元素顶部没有border, padding, inline-content, clearance (清楚浮动)分隔;父级块元素的 margin-bottom 与它的最后一个子元素之间没有border、padding、inline content、height、min-height、max-height 分隔
如果块元素 margin-top 与 margin-bottom 之间没有border、padding、inline content、height、min-height来分隔,那么它的上下外边距合并。——因为根元素也是个BFC
消除外边距重叠
根据上面的定义,对于相邻元素没有border, padding等的情况,彼此设置一个1px的透明edge即可
也可以给两个相邻元素设置包含块为BFC,因为只有同BFC内的子元素上下margin会发生重叠
对于浮动元素,绝对定位,分属不同BFC内的元素,不会有边距重叠的现象