56. BFC是什么?怎么触发BFC?
一、定义
BFC是“块级格式化上下文”的缩写,是一个独立的渲染区域,内部的元素按照一定规则进行布局,不会影响到外部元素的布局。BFC主要用于解决一些常见的布局问题,例如清除浮动、防止 margin
重叠等。
二、 BFC的触发条件
- 根元素或包含根元素的元素;
- 浮动元素(元素的
float
属性不为none
); - 绝对定位元素(元素的
position
属性为absolute
或fixed
); - 行内块元素(元素的
display
属性为inline-block
); - 表格单元格(元素的
display
属性为table-cell
,HTML
表格单元格默认即为该值); overflow
属性值不为visible
的块级元素(元素的overflow
属性值为auto
、scroll
或hidden
)。
通常情况下,我们可以通过设置元素的display
属性为inline-block
、table
、table-caption
、table-cell
等,或者设置元素的float
、position
、overflow
等CSS属性来触发BFC。
触发BFC后,内部的元素会按照一定规则进行布局,不会影响到外部元素的布局,从而避免了一些布局问题的发生。