美文网首页
2019-05-02 CSS BFC 文档流

2019-05-02 CSS BFC 文档流

作者: 追夢的蚂蚁 | 来源:发表于2019-05-09 17:16 被阅读0次

CSS规范中对 BFC 的描述

9.4.1 块格式化上下文

浮动,绝对定位元素,非块盒的块容器(例如,inline-blocks,table-cells和table-captions)和'overflow'不为'visible'的块盒会为它们的内容建立一个新的块格式化上下文

在一个块格式化上下文中,盒在竖直方向一个接一个地放置,从包含块的顶部开始。两个兄弟盒之间的竖直距离由'margin'属性决定。同一个块格式化上下文中的相邻块级盒之间的竖直margin会合并

在一个块格式化上下文中,每个盒的left外边(left outer edge)挨着包含块的left边(对于从右向左的格式化,right边挨着)。即使存在浮动(尽管一个盒的行盒可能会因为浮动收缩),这也成立。除非该盒建立了一个新的块格式化上下文(这种情况下,该盒自身可能会因为浮动变窄)

MDN 对 BFC 的描述

一个块格式化上下文(block formatting context) 是Web页面的可视化CSS渲染出的一部分。它是块级盒布局出现的区域,也是浮动层元素进行交互的区域。

一个块格式化上下文由以下之一创建:

  • 根元素或其它包含它的元素
  • 浮动元素 (元素的 float 不是 none)
  • 绝对定位元素 (元素具有 position 为 absolute 或 fixed)
  • 内联块 (元素具有 display: inline-block)
  • 表格单元格 (元素具有 display: table-cell,HTML表格单元格默认属性)
  • 表格标题 (元素具有 display: table-caption, HTML表格标题默认属性)
  • 具有overflow 且值不是 visible 的块元素,
  • display: flow-root
  • column-span: all 应当总是会创建一个新的格式化上下文,即便具有 >- column-span: all 的元素并不被包裹在一个多列容器中。

一个块格式化上下文包括创建它的元素内部所有内容,除了被包含于创建新的块级格式化上下文的后代元素内的元素。

块格式化上下文对于定位 (参见 float) 与清除浮动 (参见 clear) 很重要。定位和清除浮动的样式规则只适用于处于同一块格式化上下文内的元素。浮动不会影响其它块格式化上下文中元素的布局,并且清除浮动只能清除同一块格式化上下文中在它前面的元素的浮动。

张鑫旭对 BFC 的描述

http://www.zhangxinxu.com/wordpress/2015/02/css-deep-understand-flow-bfc-column-two-auto-layout/

BFC全称”Block Formatting Context”, 中文为“块级格式化上下文”。啪啦啪啦特性什么的,一言难尽,大家可以自行去查找,我这里不详述,免得乱了主次,总之,记住这么一句话:BFC元素特性表现原则就是,内部子元素再怎么翻江倒海,翻云覆雨都不会影响外部的元素。所以,避免margin穿透啊,清除浮动什么的也好理解了。

BFC到底是什么?

我不知道什么是 BFC
但是你写出样式,我就知道这是不是 BFC
BFC 就是这样的东西(堆叠上下文也是)

它没有定义
它只有特性/功能

这样回答面试官什么是BFC

块格式化上下文(block formatting context)
功能1:爸爸管儿子
用 BFC 包住浮动元素。(这 TM 不是清除浮动,.clearfix 才是清除浮动)
http://js.jirengu.com/sucizuvino/1/edit?html,css,output
功能2:兄弟之间划清界限
用 float + div 做左右自适应布局
http://js.jirengu.com/yezisanuta/1/edit?html,css,output


1.把内部的元素包起来
2.理解为管教严格的家长,不让儿子和别人家的来往


bfc与文档流什么关系?
bfc是一个div包住里面的东西
文档流是指内联元素从左到右排列,块级元素从上到下排列
也可以理解为:
bfc影响元素宽高,
文档流影响元素的排列顺序
二者没关系


bfc是一个时代的产物,目前很少使用

相关文章

  • 2019-05-02 CSS BFC 文档流

    CSS规范中对 BFC 的描述 9.4.1 块格式化上下文 浮动,绝对定位元素,非块盒的块容器(例如,inline...

  • BFC

    什么是BFC? 简单的来说:BFC就是一个css的一个布局概念,是一个独立的区域,是一个环境。 文档流 说BFC之...

  • 关于 BFC 的布局应用:清除浮动、文字环绕

    关于 BFC 的布局应用:清除浮动、文字环绕 参考文档:理解CSS中BFC BFC(Block Formattin...

  • bfc理解及应用

    bfc 是盒模型布局的css渲染模式。属于正常文档流。 首先BFC是一个名词,是一个独立的布局环境,我们可以理解为...

  • BFC 块级格式化上下文

    在解释BFC之前,我们需要了解一下我们常说的HTML的文档流。 文档流 文档流,其实就是指BFC中的FC,FC(F...

  • BFC(Block Formating Context)介绍

    在解释BFC之前,先说一下文档流。我们常说的文档流其实分为定位流、浮动流和普通流三种。而普通流其实就是指BFC中的...

  • 讲不清楚的BFC

    BFC全称"Block formatting Context",也叫块级格式化上下文。CSS文档里对BFC的描述 ...

  • BFC 详解

    BFC(block-formating-content) 根据W3C官方文档,块格式化上下文(BFC)是CSS正常...

  • BFC详解

    本文归饥人谷和本人所有,如需转载请注明来源 BFC定义 在解释BFC之前,先说一下文档流。我们常说的文档流其实分为...

  • css文档流

    文档流:文档流就是文档内元素流动的方向 内联元素文档流 内联元素的文档流是从左往右流动的,当一行满了之后会另起一行...

网友评论

      本文标题:2019-05-02 CSS BFC 文档流

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