全称block fomatting context简称bfc

他是一块独立的渲染区域,规定了该区域中常规流块盒的布局

BFC渲染区域

这个区域由某个html元素创建,以下元素会在其内部创建bfc区域

根元素

即html元素
这意味着,html元素创建的BFC区域覆盖了网页中所有元素

浮动和绝对定位元素

overflow不等于visible的块盒

块级格式化上下文

独立

不同的bfc区域,他们进行渲染时互不干扰

创建bfc的元素,隔绝了他内部与外部的联系,内部的渲染不会影响到外部

具体规则:

创建bfc的元素,他的自动高度需要计算浮动元素

我们都知道下面这行代码会高度坍塌
块级格式化上下文
块级格式化上下文

而一般最稳妥的方法就是clearfix清除浮动了,但我们现在可以利用上面所说的,把大盒子aa改成position:absolute;
或者float:left;或者overflow:hidden;

创建bfc的元素,他的边框盒不会与浮动元素重叠

本来块盒无视浮动盒的
块级格式化上下文
块级格式化上下文
现在加上overflow:hidden;kk类所在元素创建了bfc区域,现在相当于jj和kk都是创建bfc的元素了,二者互相又不干扰,因此二者没有重叠了
块级格式化上下文
块级格式化上下文

创建bfc的元素,不会和他的子元素进行外边距合并

我们都知道块盒一般外边距会合并

现在我们看一看前面那张图的元素G,元素H,在元素G加上了那句overflow:hidden;之后,元素G也是属于创建bfc的元素了,对于元素G,他在根元素的bfc区域中,而元素H处于元素G的bfc区域中,我们前面又说,不同bfc区域渲染时互不干扰,因此不会发生外边距合并,

相关文章:

  • 2021-06-03
  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-24
  • 2021-08-23
  • 2021-06-01
  • 2021-10-21
  • 2021-12-19
相关资源
相似解决方案