前端面试题(16)—— BFC及其应用
定义:
-
BFC(Block Format Context)块级格式化上下文,是页面盒模型中的一种CSS渲染方式,相当于一个独立的容器,里面的元素和外部元素相互不影响。
-
官方文档解释如下:A block formatting context contains everything inside of the element creating it that is not also inside a descendant element that creates a new block formatting context.(一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素。)
创建BFC的方式:
- html根元素
- float浮动
- 绝对定位
- overflow不为visible
- display为表格布局或者弹性布局
BFC主要作用:
- 清除浮动,比如元素内有浮动子元素导致高度塌陷,给这个元素添加 overflow:hidden 可以实现包裹浮动子元素。(因为创建了 BFC,不允许孩子超出自己的边界)
- 防止同一BFC容器中的相邻元素间外边距重叠问题,父子块级元素如果没有设置边框和padding,外边距会产生折叠。给父元素添加 overflow:hidden 后会阻止父子元素外边距折叠。
推荐以下两个内容,我觉得写的很好
https://zhuanlan.zhihu.com/p/378256583
https://www.itcast.cn/news/20201016/16152387135.shtml