BFC 块级格式化上下文

作者: 赵永盛 | 来源:发表于2019-05-29 22:22 被阅读39次

BFC(Block Formatting Context)块级格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。只有Block-level Box参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。

  • BFC就是用来格式化块级盒子的

Formatting Context:指页面中一个渲染区域,并且拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用

通俗一点,可以把BFC理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部

一个新的 display 属性的值,它可以创建无副作用的BFC。在父级块中使用 display: flow-root 可以创建新的BFC。

形成的条件:
  • 浮动元素, float 除 none 以外的值
  • absolute, fixed 定位
  • display: inline-block | tabel-cell | table-caption | flex | inline-flex
  • overflow 除 visible 以外的值
  • 根元素或包含它的元素
特性:
  • 内部的Box会在垂直方向上一个接一个的放置
  • 垂直方向上的距离由 margin 决定,在同一个BFC内部,两个垂直方向相邻的块级元素的margin会发生“塌陷”
  • bfc 区域不会和 float 区域重叠
  • 计算 bfc 高度时,浮动元素也参与计算
  • bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素,反之亦然
作用:
  • 子元素 float 后,父元素高度坍塌,可以设置 父元素 overflow: hidden
  • margin 合并问题
    • 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值
    • 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值
    • 两个外边距一正一负时,折叠结果是两者的相加的和
      那么,如何避免合并呢?让其中一个盒子是 bfc 即可
  • 左图片,右文字 两栏布局

    图片是 float, 右边是个 <p> 这里是文字..... </p>
    可以看到,发生了文字环绕,如何不想文字环绕呢?

    给 <p/> 创建 bfc, 例如 加 overflow: hidden;

相关文章

  • css

    描述BFC(块格式化上下文)及其工作原理。 BFC 即 Block Formatting Contexts (块级...

  • BFC

    什么是 BFC Block Formatting Contexts(BFC):块级元素格式化上下文 BFC布局规则...

  • web前端入门到实战:CSS里的BFC和IFC的用法

    一、BFC Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 ...

  • CSS知识点----BFC

    BFC(块级格式化上下文) 块格式化上下文(Block Formatting Context,BFC) 是Web页...

  • 学习BFC格式化上下文笔记

    BFC格式化上下文 块级格式化上下文(Block Fromatting Context)是按照块级盒子布局的。 B...

  • BFC / IFC

    BFC(Block Formatting Context)块级格式化上下文 定义:一个块格式化上下文 ( BFC ...

  • 3分钟理解BFC

    BFC的简介 BFC(Block Formatting Context) 块级格式化上下文,是用于布局块级盒子的一...

  • BFC和IFC

    BFC 块级格式化上下文 哪些元素会生产BFC? IFC 行内格式化上下文

  • BFC属性

    BFC(Block formatting context)直译为"块级格式化上下文"。BFC它是指一个独立的块级渲...

  • BFC和IFC

    BFC 块级格式化上下文 IFC 行内格式化上下文

网友评论

    本文标题:BFC 块级格式化上下文

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