bfc是什么_一次弄懂css的BFC

一次弄懂css的BFC

前言

BFC在css的学习中是重要的但不易理解的概念,BFC也牵扯了很多其他问题,如浮动、定位、盒模型等,因此弄懂BFC是很有必要的。本文对BFC进行总结,希望对你有所帮助。

BFC是什么?

先看看MDN的定义:

块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

官方文档的说法很难理解,查阅多方资料后,得到以下的结论:

BFC(block formatting context)块级格式化上下文,它是页面中的一块渲染区域,并且有一套属于自己的渲染规则,它决定了元素如何对齐内容进行布局,以及与其他元素的关系和相互作用。 当涉及到可视化布局的时候,BFC提供了一个环境,HTML元素在这个环境中按照一定规则进行布局

简短的总结:BFC是一个独立的布局环境,BFC内部的元素布局与外部互不影响

BFC的布局规则

  1. 内部的Box会在垂直方向一个接着一个地放置。
  2. Box垂直方向上的距离由margin决定。属于同一个BFC的两个相邻的Box的margin会发生重叠。
  3. 每个盒子的左外边框紧挨着包含块的左边框,即使浮动元素也是如此。
  4. BFC的区域不会与float box重叠。
  5. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
  6. 计算BFC的高度时,浮动子元素也参与计算。

如何触发BFC?

这里只记录常用方法,想要了解全部触发BFC的方法请点击此链接

元素或属性属性值根元素floatleft、rightpositionabsolute、fixedoverflowauto、scroll、hiddendisplayinline-block、table-cell

BFC可以解决哪些问题?

  1. 解决浮动元素令父元素高度坍塌的问题方法:给父元素开启BFC原理:计算BFC的高度时,浮动子元素也参与计算演示:
  2. 非浮动元素被浮动元素覆盖方法:给非浮动元素开启BFC原理:BFC的区域不会与float box重叠演示:
f15afb26ce73b532f22ee6cab731ca7f.gif
  1. 两栏自适应布局方法:给固定栏设置固定宽度,给不固定栏开启BFC。原理:BFC的区域不会与float box重叠演示:
f2fe866252ae6e364f4853b33f0cb4b0.gif
  1. 外边距垂直方向重合的问题方法:给上box或者下box任意一个包裹新的box并开启BFC原理:属于同一个BFC的两个相邻的Box的margin会发生重叠。演示:
3636a3f8b3b0eea78dec40bd148fdb52.gif

结语

以上就是本文关于BFC的全部内容,如果有不正确的地方,欢迎大家指正。码字不易,且赞且珍惜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值