跳到主要内容

格式上下文 - FC

BFC Block formatting contexts 1

如何创建 BFC

BFC 的特性

  • 同一个 BFC 中的元素互相影响
  • 不同 BFC 中的元素不会互相影响
  • 隔离子元素和外部之间的影响,常用作避免 margin 合并、清除浮动、修复高度塌陷等
  • 浮动盒不会叠加到 BFC 上

用于解决的问题

  • 解决浮动高度塌陷
  • 使用浮动制作多栏布局
  • 解决 margin 重叠

特例

body 使用 overflow 不会创建 BFC 2

  • 原因
    • | overflow 的特例
    • | root 元素 overflow 为 visible 时,body 作为子元素,UA 会将 body 的 overflow 用于 viewport
    • | viewport overflow 强制为 visible
    • | ​viewport overflow 扩散到 body,body 的 overflow 变为 visible
    • | BFC 创建失败
  • 解决
    • 使用其它属性创建 bfc
    • 在 html 上设置 overflow 避免 body overflow 扩散到 viewport

IFC Inline formatting contexts https://drafts.csswg.org/css2/#inline-formatting

  • 上下高度、padding、margin 等不会对布局造成影响

FFC

GFC