BFC在css的学习中是重要的但不易理解的概念,BFC也牵扯了不少其余问题,如浮动、定位、盒模型等,所以弄懂BFC是颇有必要的。本文对BFC进行总结,但愿对你有所帮助。css
先看看MDN的定义:ide
块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其余元素交互的区域。布局
官方文档的说法很难理解,查阅多方资料后,获得如下的结论:学习
BFC(block formatting context)块级格式化上下文,它是页面中的一块渲染区域,而且有一套属于本身的渲染规则,它决定了元素如何对齐内容进行布局,以及与其余元素的关系和相互做用。 当涉及到可视化布局的时候,BFC提供了一个环境,HTML元素在这个环境中按照必定规则进行布局ui
简短的总结:BFC是一个独立的布局环境,BFC内部的元素布局与外部互不影响3d
这里只记录经常使用方法,想要了解所有触发BFC的方法请点击此连接orm
元素或属性 | 属性值 |
---|---|
根元素 | |
float | left、right |
position | absolute、fixed |
overflow | auto、scroll、hidden |
display | inline-block、table-cell |
解决浮动元素令父元素高度坍塌的问题cdn
方法:给父元素开启BFCblog
原理:计算BFC的高度时,浮动子元素也参与计算文档
演示:
非浮动元素被浮动元素覆盖
方法:给非浮动元素开启BFC
原理:BFC的区域不会与float box重叠
演示:
两栏自适应布局
方法:给固定栏设置固定宽度,给不固定栏开启BFC。
原理:BFC的区域不会与float box重叠
演示:
外边距垂直方向重合的问题
方法:给上box或者下box任意一个包裹新的box并开启BFC
原理:属于同一个BFC的两个相邻的Box的margin会发生重叠。
演示:
以上就是本文关于BFC的所有内容,若是有不正确的地方,欢迎你们指正。码字不易,且赞且珍惜。