格式化上下文(Formatting Context)
格式化上下文定义了 CSS 格式化的机制。
什么是格式化上下文?
格式化上下文(Formatting Context)是 CSS 中定义元素如何格式化的机制。不同的格式化上下文决定了元素如何渲染和计算尺寸。
常见的格式化上下文
块级格式化上下文(BFC)
块级格式化上下文(Block Formatting Context, BFC)影响块级元素的布局。
创建 BFC 的条件
float不为noneposition为absolute或fixeddisplay为inline-block、table-cell、table-caption、flex、gridoverflow不为visible
BFC 特性
- 内部的块级元素在垂直方向上依次排列
- BFC 的高度会包含浮动元素
- BFC 不会与浮动元素重叠
弹性格式化上下文(FFC)
弹性格式化上下文(Flex Formatting Context, FFC)用于 Flexbox 布局。
创建 FFC 的条件
display为flex或inline-flex
FFC 特性
- 子元素可以沿主轴和交叉轴排列
- 可以控制子元素的对齐方式
- 可以控制子元素的伸缩比例
网格格式化上下文(GFC)
网格格式化上下文(Grid Formatting Context, GFC)用于 Grid 布局。
创建 GFC 的条件
display为grid或inline-grid
GFC 特性
- 子元素可以放置在网格中
- 可以定义网格的行和列
- 可以控制网格项的对齐方式
行内格式化上下文(IFC)
行内格式化上下文(Inline Formatting Context, IFC)用于行内元素的布局。
IFC 特性
- 行内元素在同一行排列
- 垂直对齐基于基线
- 行高由行内元素的最大行高决定
表格格式化上下文(TFC)
表格格式化上下文(Table Formatting Context, TFC)用于表格布局。
TFC 特性
- 表格行和列自动计算
- 单元格对齐基于基线
- 表格高度由内容决定