CSS-Learning | 外边距折叠机制与解决方案

这篇博客探讨了CSS中的外边距折叠现象,解释了何时会出现外边距折叠,并提供了防止外边距折叠的方法,如使用浮动元素、创建BFC、绝对定位以及设置inline-block元素。

外边距折叠

什么是外边距折叠?

简单来说,就是垂直方向上的两个外边距相遇时,会折叠成一个外边距。折叠后外边距的高度等于两者中较大的那一个高度。


可能出现外边距折叠的情况

  1. 当两个元素垂直堆叠时,上方元素的下外边距会与下方元素的上外边距相折叠。

折叠前、后

  1. 当一个元素嵌套着另一个元素的情况下,假设没有内边距或边框来分隔外边距,它们的上、下外边距也会折叠。

折叠前、后

  1. 甚至同一个元素的外边距都能折叠,假设有一个空元素,只有外边距而没有边框或内边距。此时,上外边距与下外边距接触,结果也会折叠。

折叠前、后


外边距折叠只发生在文档常规流中块级盒子的垂直方向上。行内盒子、浮动盒子或绝对定位盒子的外边距不会折叠。


如果我们不希望外边距折叠,该怎么做呢?

  1. 浮动元素不会与任何元素发生叠加,也包括它的子元素
  2. 创建了BFC的元素不会和它的子元素发生外边距叠加
  3. 绝对定位元素和其他任何元素之间不发生外边距叠加,也包括它的子元素
  4. inline-block元素和其他任何元素之间不发生外边距叠加,也包括它的子元素
  5. 普通流中的块级元素的margin-bottom永远和它相邻的下一个块级元素的margin-top叠加,除非相邻的兄弟元素clear
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值