margin 坍塌问题与 BFC(块级格式化上下文)

BFC

全称叫块级格式化上下文(Block Formatting Context)
一个独立的渲染区域,有自己的渲染规则,与外部元素不会互相影响。

BFC 的触发方式:

设置了 float 属性(属性值不为 none )
设置了 position 属性为 absolute 或 fixed
设置了 display 属性为 inline-block 或 inline-flex 或 inline-grid

margin 塌陷问题:

<body>
  <div class="box1"></div>
  <div class="box2"></div>
</body>

假设有两个 div,其宽高都是 100px。

.box1, .box2 {
  width: 100px;
  height: 100px;
}
.box1 {
  margin-bottom: 20px;
}
.box2 {
  margin-top: 30px;
}

在这里插入图片描述

如果期望两个盒子之间的间距为 20+ 30 = 50px,则让它们都触发 BFC(块级格式化元素)即可:

  1. display: inline-block在这里插入图片描述

  2. display: inline-grid;在这里插入图片描述

  3. 两个元素都设置 float(这里单独给第二个 div 设置 float: left 也可以)在这里插入图片描述

  4. 定位在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值