外边距重叠问题

233 阅读1分钟

css中外边距合并问题

外边距合并指的是,当两个垂直外边距相遇时,他们将形
成一个外边距。合并后的外边距的高度等于两个发生外边
距的高度中的较大者。(注释:只有普通文档流中块框的
垂直外边距才会发生外边距合并。行内框,浮动框或者绝 
对定位之间的外边距不会合并)

外边距合并的计算原则:

两者是正数,取较大者的外边距

一正一负,正值减去负值的绝对值(也就是负值加正值)

两个都是负值,0减去绝对值大的那个

外边距合并的两种常见情况:

QQ图片20220913140337.png

QQ图片20220913140417.png

外边距合并的解决办法:

(1) 兄弟间的重叠

底部元素为行内盒子:diplay: inline-block

底部元素设置浮动:float

底部元素的position的值为absolute/fixed

(2)父子间重叠

父元素加入:overflow:hidden

父元素添加透明边框:border:1px solid transparent

子元素变为行内盒子:display:inline-block

子元素加入浮动属性或定位