格式化上下文 是页面上的一块独立渲染区域。 它决定了其子元素如何排列,以及该区域如何与其他元素相互作用。
一句话本质:它是一个“结界”。结界里的内政(布局)由结界主说了算,且结界内发生的混乱(如浮动、外边距合并)不会泄露到结界外。
包括:
- BFC (Block Formatting Context): 处理块级盒子。最常用,用于清除浮动、防止 margin 重叠。
- IFC (Inline Formatting Context): 处理行内盒子(文字)。决定文字如何折行、如何对齐。
- FFC
- GFC
需要关注的几个维度
-
触发元素与子元素产生的相互影响
-
触发元素与兄弟元素产生的相互影响
-
特定格式化上下文触发的条件
-
边界与包含块