bfc是什么_BFC的触发和作用

1cb76f7698b0db2997b58d02c7b7d952.png

前言:BFC的全称是块级格式化上下文,是很抽象的概念,具体是什么很难说清,但是一定要了解如何触发BFC和BFC有那些作用。

面试里如果遇到如何遇到问什么是BFC的话,不要试着去说什么是BFC,就是块级格式化上下文,尽量说BFC的作用,以及如何触发,这就是BFC。

如何触发BFC?

  • 根元素,即HTML元素
  • float不为none
  • overflow的值不为visible
  • display的值为inline-block,table-cell,table-caption
  • position的值为absolute或者fixed

BFC的作用?

  • 自适应两栏布局
  • 可以阻止元素被浮动元素覆盖
  • 如果元素里面包含浮动元素,可以清除内部浮动(原理:父元素创建了BFC后,里面的子元素即使是float也会参与高度计算)
  • 分属于不同BFC时,可以防止margin重叠

以下是作用的几个例子:

1.自适应两栏布局

未创建BFC时还不能实现两栏布局

4a2bc6508f0dfcf419b1ee146cfaf6dc.png

创建BFC后

6bb716ed44151194130d10d3b6dc1ffa.png

HTML代码和CSS代码:

<

2.可以阻止元素被浮动元素覆盖

通过将浮动元素设置为白色透明背景色,可以看得出右边的元素被左边的浮动元素覆盖

b7155b85f9baaef2fdbb4c1f5e93997c.png

将右边的元素创建BFC后,右边元素不会被左边浮动元素覆盖,为了更明显的显示,将背景色改成了黄色

2ce3b974de9f4df1f607cef2782ce0e4.png

HTML和CSS代码

<

3.清除内部浮动

可以看见在父元素里面的两个浮动元素跑出来了,如果清楚了内部浮动,就不会跑出来了

3a769fb2795707a9b5a9f42dd57980ca.png

父元素创建BFC后,可以看见内部的浮动元素被清除浮动了

bcfeda8deaaedbc8dd1a913698fa7d30.png

HTML和CSS代码

<

4.分属于不同BFC时,可以防止margin重叠,这里举出兄弟边距重叠的例子

将上下两块元素的margin都设置为40px,我们可以发现,上下两块元素之间的边距也是40px;说明发生了边距重叠

67b4ddef1909a3f8abf2a1fe04e8d520.png

将左边的元素创建BFC后我们可以看到,边距重叠消失了

1b8ecf98465a87dce4daead8a2cd87de.png

HTML和CSS代码

 <div class="container">
     <div class="left"></div>
     <div class="right"></div>
 </div>

-----------------------------------------------------------------------

.left{
  width:100px;
  height:200px;
  background:green;
  margin:40px;
  display:inline-block;//创建了BFC
}
.right{
  margin:40px;
  width:400px;
  height:200px;
  background:red;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值