BFC与IFC学习笔记

2020-04-05  本文已影响0人  南场41号

BFC是什么

BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1规范定义的,关于CSS渲染定位的一个概念。

视觉格式化模型

视觉格式化模型(visual formatting model)是用来处理文档并将它显示在视觉媒体上的机制,它也是CSS中的一个概念。

视觉格式化模型定义了盒(Box)的生成,盒主要包括了块盒、行内盒、匿名盒(没有名字不能被选择器选中的盒)以及一些实验性的盒(未来可能添加到规范中)。盒的类型由display属性决定。

块盒(block box)

行内盒(inline box)

匿名盒(anonymous box)xj

匿名盒又分匿名块盒与匿名行内盒,因为匿名盒没有名字,不能利用选择器来选择它们,所以它们的所有属性都为inherit或初始默认值;

三个定位方案

在定位的时候,浏览器就会根据元素的盒类型和上下文对这些元素进行定位,可以说盒就是定位的基本单位。定位时,有三种定位方案,分别是常规流,浮动以及绝对定位。

常规流(Normal flow)

浮动(Floats)

绝对定位(Absolute positioning)

外边距叠加(margin collapse)

两个或多个毗邻的普通流中的盒子(可能是父子元素,也可能是兄弟元素)在垂直方向上的外边距会发生叠加,这种形成的外边距称之为外边距叠加。注意浮动元素和绝对定位元素的外边距不会折叠。

产生外边距折叠的场景:

一些需要注意的地方:

块格式化上下文

块格式上下文是页面CSS 视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域。

BFC的触发方法:

但其中,最常见的就是overflow:hiddenfloat:left/rightposition:absolute。也就是说,每次看到这些属性的时候,就代表了该元素触发了一个BFC了。

BFC的范围

BFC包含创建该上下文元素的所有子元素,但不包括创建了新BFC的子元素的内部元素。

BFC的布局规矩

BFC用途

IFC

Inline Formatting Contexts,也就是“内联格式化上下文”。

触发条件

IFC布局规则

IFC用途

上一篇下一篇

猜你喜欢

热点阅读