BFC

什么是BFC

BFC(Block Formatting Context)块格式化上下文,它规定了内部的 block-level box 如何布局。BFC是页面上的一个隔离的独立容器,这个容器的内外的布局相互不受影响。BFC默认是关闭的,但可以手动打开。
w3c文档关于BFC的描述9.4.1 Block formatting contexts

如何创建BFC

  • 常用的块级格式化上下文创建方式
  1. 根元素(<html>)
  2. 浮动元素
  3. 绝对定位元素 (position 为 absolute 或 fixed)
  4. 具有 display: inline-block,flex等的元素
  5. 块级元素具有overflow ,且值不是 visible
    更多方式见MDN创建新的块格式上下文
  • 推荐方式:以上几种方式,将overflow设置为hidden是副作用最小的开启BFC的方式。
  • 补充:CSS中的一个新属性diaplay:flow-root可以为当前容器创建新的BFC,详见此

BFC布局规则

  • 当开启元素的BFC以后,元素将会具有如下的特性:
  1. 内部的 Box会在垂直方向,从上到下依次排列(html自动开启BFC,所以块级元素独占一行)
  2. Box 垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠(margin重叠问题)
  3. 计算BFC的高度时,浮动元素也参与计算
  4. BFC的区域不会与float box重叠(自适应两栏布局)
  5. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

常见应用

  • margin折叠
  • 自适应两栏布局
  • 清除浮动
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先前在学习CSS float时,有同学提到了BFC这个词,作为求知好问的好学生,哪里不懂查哪里,那么今天就来研究一...
    这名字真不对阅读 6,599评论 3 19
  • BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1规范定义的,关于C...
    xf0128阅读 382评论 0 0
  • 完整高频题库仓库地址:https://github.com/hzfe/awesome-interview[http...
    HZFEStudio阅读 175评论 0 2
  • 一、什么是BFC BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1...
    笨蛋小明阅读 5,504评论 2 8
  • 在解释 BFC 是什么之前,我们先来看下 Box、Formatting Context的概念。 Box: CSS布...
    JuanitaLee阅读 988评论 0 1