CSS Margin 塌陷

CSS About 568 words

Margin Collapse

垂直方向上,两个相邻的块级元素(或者父子元素)的margin会重叠,取较大值作为最终生效的margin,若有负的Margin则取绝对值最大的,正负抵消后计算。

相邻块级元素的 Margin 塌陷

div1margin-bottom: 20pxdiv2margin-top: 30px,则两个相邻的块级间距不是50px,而是30px

<div style="margin-bottom: 20px">块1</div>
<div style="margin-top: 30px">块2</div>

父子元素的 Margin 塌陷

子元素margin穿透父元素,实际只有margin-top: 30px

<div style="margin-top: 20px">
    <div style="margin-top: 30px">子元素</div>
</div>

解决方法

方法一

使用flex布局,gap属性保证元素间距。

方法二

BFC块级格式化上下文,使父元素独立布局,隔绝子元素margin

对于父子元素的margin塌陷,在父元素中添加overflow: hidden,即可解决子元素margin穿透父元素。

方法三

相邻块级元素的margin塌陷,可以使用padding来解决。

Views: 183 · Posted: 2025-09-05

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh