美文网首页
谈谈你了解的BFC

谈谈你了解的BFC

作者: 张亚群 | 来源:发表于2018-10-28 15:46 被阅读16次

BFC 全称 Block Formatting Context
每个渲染区域用formatting context表示,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用
在正常流中的盒子要么属于块级格式化上下文,要么属于内联格式化上下文;

哪些元素生成 BFC

  • 根元素;
  • float属性不为none;
  • position为absolute或fixed;
  • display为inline-block, flex, 或者inline-flex;
  • overflow不为visible;

BFC特性:

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

作用

  • margin 合并
  • contain float
    其中的一种解决方法:overflow:hidden ,创建新的BFC,可以包含float元素,父元素就有高度值了
    阐述:如果父元素只包含浮动元素,因为浮动元素是不包含在正常流的,浮动孩子将会脱离页面的常规流,因此父元素相当于不包含任何元素,高度为0。

而BFC里面有两条规则:
1、BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
2、计算BFC的高度时,浮动元素也参与计算
overflow:hidden会产生新的BFC,子元素的被包含在父元素的BFC中,因此父元素不受子元素影响,恢复常规布局,遵循BFC规则,同时计算高度时,父元素的高度会将浮动元素算进来,因此父元素有了高度。

不过这里要阐述一件事就是高度塌陷只出现在父元素包含且只包含浮动元素的时候:

看图:在父元素没有明确定义height的时候,如果只包含浮动元素,父元素会出现高度塌陷的问题。(其中的解决方法主要有添加伪元素clear:both,设置父元素height,设置父元素overflow:hidden等方式)


image.png

下图:当父元素内部有非float元素时(clear:both的原理)


image.png

IFC

IFC也是一种布局规则,inline元素和inline-block符合IFC的布局规则。在IFC布局中重点关注一下line box。
  (补充一下:IFC的生成条件是元素满足inline-level box)

内联格式化上下文

  • IFC也是一种布局规则
  • 块容器盒里面只有行级元素的时候,自动生成 IFC

引用

相关文章

  • 谈谈你了解的BFC

    BFC 全称 Block Formatting Context每个渲染区域用formatting context表...

  • CSS新手向的知识点<四>

    阅读本篇文章,你将大致了解到BFC的作用 关于BFC的知识 BFC(block formatting contex...

  • BFC原理

    BFC是什么? 了解BFC之前,先了解Box,Formatting Content的概念 Box:CSS布局的基本...

  • BFC

    什么是BFC在了解BFC之前,需要了解一下 Box、Formatting Context的概念。 Box: CSS...

  • BFC

    一、BFC是什么 BFC(box formatting context),要了解BFC是什么需要先理解box和fo...

  • 了解BFC

    1. 什么是BFC BFC:(block formatting context),块格式化上下文。平常基本不使用,...

  • 10 个 CSS 高频面试题,你都会吗?

    了解更多添加697763012 1.什么是 BFC机制 BFC(Block Formatting Context)...

  • BFC 记录

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

  • 我了解的BFC

    大家好,我是IT修真院成都分院第07期学员,一枚正直善良的web程序员。 1.背景介绍 BFC是什么? BFC 定...

  • 说人话,解释BFC以及讲述BFC的应用

    初步了解定义 请先耐心阅读BFC的定义和构成前提,然后再看它的作用。 BFC全名:Block Formatting...

网友评论

      本文标题:谈谈你了解的BFC

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