BFC介绍

作者: 饥人谷_易燃 | 来源:发表于2018-04-22 21:44 被阅读0次

BFC全称 Block Formatting Context;
block-level box:display 属性为 block, list-item, table 的元素,会生成 block-level box。并且参与 block fomatting context;
每个渲染区域用formatting context表示,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用;
总结就是:BFC是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。

哪些元素生成 BFC

1.根元素;
2.float属性不为none;
3.position为absolute或fixed;
4.display为inline-block, flex, 或者inline-flex;
5.overflow不为visible;

BFC的特性

  • 内部的Box会在垂直方向,一个接一个地放置
  • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠
  • 每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此
  • BFC的区域不会与float box重叠
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此
  • 计算BFC的高度时,浮动元素也参与计算

BFC的作用

1.防止margin 重叠
2.清除浮动

示例:

1.防止margin 重叠

BFC003.png

查看下两个div元素的margin是否重叠


BFC001.png BFC002.png

通过查看,我们发现两个块级元素的之间的margin所形成的距离并不是200px,而是100px,两个div 元素的margin发生了重叠;

我们可以在div元素外面包裹一层容器,并触发该容器生成一个BFC。那么两个div便不属于同一个BFC,就不会发生margin重叠了

BFC004.png BFC005.png BFC006.png

通过查看,两个div元素之前的margin距离为200px,没有发生重叠;

2.清除浮动

先写一个浮动:


BFC007.png

因为父元素感知不到浮动元素的存在,并且父元素没有设置高度,导致浮动元素无法撑起来父元素,所以父元素的高度为0;
我们通过将父元素触发为一个BFC,来清除浮动,因为计算BFC的高度时,浮动元素也参与计算;

BFC008.png

如图所示,父元素被撑开,高度为div元素的高度100px;

相关文章

  • BFC介绍

    BFC全称 Block Formatting Context;block-level box:display 属性...

  • 介绍BFC?

    什么是BFC BFC(Block[https://so.csdn.net/so/search?q=Block&sp...

  • CSS-BFC

    BFC box,Formatting Context在解释 BFC 是什么之前,需要先介绍 Box、Formatt...

  • BFC 记录

    一文了解bfc BFC定义bfc(box formatting context) 中文名为块级格式化上下文。在介绍...

  • BFC(块级格式化上下文)

    一、BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box、Formatting Context的概念。 ...

  • 你所知道的BFC是怎样的?

    什么是BFC? 在解释BFC 是什么之前,需要先介绍Box、Formatting Context的概念。 Box:...

  • BFC 神奇背后的原理

    一、BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box、Formatting Context的概念。 ...

  • CSS-定位7-BFC

    1、什么是BFC 在解释 BFC 是什么之前,需要先介绍 Box、Formatting Context的概念。**...

  • BFC神奇背后的原理

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用...

  • 什么是BFC(Block Formatting Context)

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用...

网友评论

      本文标题:BFC介绍

      本文链接:https://www.haomeiwen.com/subject/nzoclftx.html