什么是BFC(块格式上下文)?

BFC,英文全称:Block Formatting Context,即“块格式化上下文”,是 CSS2.1 规范中的一个概念,定义了浏览器对于 Web 页面中的独立的渲染区域的布局规则。

规范原文是这样描述的,“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 的布局规则:

1.BFC 容器内的块从上往下排列

2.BFC 容器内两个相邻块在垂直方向的margin会发生重叠

3.BFC 区域不会与设置为浮动的元素重叠,会紧贴浮动元素

4.BFC 容器的高度会包含浮动元素

5.BFC 容器内的子元素与外部隔离,互不影响

创建 BFC 的方式:

1.根元素(<html>)

2.浮动元素(float 值不为 none)

3.绝对定位元素(position 值为 absolute 或 fixed)

4.行内块元素(display 值为 inline-block)

5.display 值为 table、table-row、table-row-group、table-header-group、table-footer-group、table-cell、flow-root

6.overflow 值不为 visible、clip 的块元素

BFC 的特殊应用场景:

1.清除浮动元素造成的高度塌陷(清除浮动参考:CSS清除浮动的方法

2.避免外边距重叠(见 css外边距叠加问题,即垂直方向margin合并

此条目发表在CSS分类目录,贴了, 标签。将固定链接加入收藏夹。