0
点赞
收藏
分享

微信扫一扫

一起探讨BFC

BFC又称块状格式化上下文,是css中非常常用的技术,但是有的人只有用他稀里糊涂的解决问题,却不知道其中的原理。今天我们就来扒扒它。

BFC是什么?

首先我们看下官方定义

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

看着高大上的解释,反而感觉会更蒙了。其实用人话来翻译,就是说BFC是专门生成一个单独区域,它不受外部影响。并且它的内部也不会影响到外部。总之,就是彼此互不打扰。

BFC怎么产生?

BFC产生有很多种。本质上css就三种布局方式,正常的文档流,浮动加定位。而BFC的产生也可以根据这三种文档格式来定。首先,浮动float就可以产生BFC。其次,position:absolute绝对定位。最后,overflow不是visible、clip的块状元素。当然,除了这三种常用的,还有很多需要特殊记忆的种类。例如:flex布局、grid珊格布局、display不是visible就可以。

BFC解决哪些场景?

  1. BFC可以解决浮动,也就是解决浮动元素让父元素高度坍塌的问题。方案上就是,给父元素开启BFC。这样能被解决是因为计算BFC的高度时,浮动子元素也会被计算。因此,将父容器的高度撑起来了。
  2. BFC可以解决margin合并。虽然margin本质上是设计如此。但是有的场景就是希望margin距离的非合并的存在。这时候只要给其中一个元素用BFC包裹就行了,这是因为属于同一个BFC的两个相邻的元素margin会发生重叠。

结束语

BFC就像学游泳。开始用的时候就难免会呛水,但是当你学会后,就会发现,你不需要再刻意思考,就在文档流中,如鱼得水。祝大家都能自如驭水。

享受失重,不惧失控。

举报

相关推荐

0 条评论