返回
BFC布局规则与其他CSS格式化上下文介绍
前端
2024-02-19 07:13:34
BFC 布局规则
BFC 是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离。BFC 的主要作用是防止浮动元素对文本流产生影响。
BFC 的形成条件有以下几个:
- 根元素
- 浮动元素
- 绝对定位元素
- flex 元素
- grid 元素
当一个元素满足上述条件中的任意一个时,它就会形成一个新的 BFC。
BFC 的特性有以下几个:
- BFC 内部元素不会受到 BFC 外部元素的影响。
- BFC 内部元素的布局不受 BFC 外部元素的影响。
- BFC 内部元素的浮动不会影响 BFC 外部的元素。
其他 CSS 格式化上下文
除了 BFC 之外,CSS 中还有其他几个格式化上下文,包括:
- 浮动上下文
- 定位上下文
- flexbox 上下文
- grid 上下文
浮动上下文是指一个元素的浮动属性为 left 或 right 时,该元素所在的块级元素形成的格式化上下文。浮动元素会脱离正常的文档流,并根据其浮动属性定位在块级元素的左边缘或右边缘。
定位上下文是指一个元素的定位属性为 absolute 或 fixed 时,该元素所在的块级元素形成的格式化上下文。定位元素会脱离正常的文档流,并根据其定位属性定位在页面中的某个位置。
flexbox 上下文是指一个元素的 display 属性为 flex 或 inline-flex 时,该元素所在的块级元素形成的格式化上下文。flexbox 元素可以在水平方向或垂直方向上排列其子元素,并且可以控制子元素的尺寸和对齐方式。
grid 上下文是指一个元素的 display 属性为 grid 或 inline-grid 时,该元素所在的块级元素形成的格式化上下文。grid 元素可以将子元素排列成网格状,并且可以控制网格的列数、行数、间隙以及子元素的大小。
不同格式化上下文的比较
下表比较了不同格式化上下文的特点:
格式化上下文 | 形成条件 | 特性 |
---|---|---|
BFC | 根元素、浮动元素、绝对定位元素、flex 元素、grid 元素 | BFC 内部元素不会受到 BFC 外部元素的影响;BFC 内部元素的布局不受 BFC 外部元素的影响;BFC 内部元素的浮动不会影响 BFC 外部的元素。 |
浮动上下文 | 元素的浮动属性为 left 或 right | 浮动元素会脱离正常的文档流,并根据其浮动属性定位在块级元素的左边缘或右边缘。 |
定位上下文 | 元素的定位属性为 absolute 或 fixed | 定位元素会脱离正常的文档流,并根据其定位属性定位在页面中的某个位置。 |
flexbox 上下文 | 元素的 display 属性为 flex 或 inline-flex | flexbox 元素可以在水平方向或垂直方向上排列其子元素,并且可以控制子元素的尺寸和对齐方式。 |
grid 上下文 | 元素的 display 属性为 grid 或 inline-grid | grid 元素可以将子元素排列成网格状,并且可以控制网格的列数、行数、间隙以及子元素的大小。 |