格式化上下文

格式化上下文指决定渲染区域内节点的排版、关系和互相作用的渲染规则。

常见的格式上下文

上下文 缩写 版本 说明
块格式化上下文 BFC 2 块级(block)盒子容器
行内式化上下文 IFC 2 行内(inine)盒子容器
弹性式化上下文 FFC 3 弹性(flex)盒子容器
格栅格式化上下文 GFC 3 格栅(grid)盒子容器

块级格式化上下文(Block Formatting Context,BFC)

块格式化上下文(Block Formatting Context,BFC)是 Web 页面的可视 CSS 渲染的一部分,是块级盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

BFC 中所有内容都会参与 BFC,浮动的内容不会从底部溢出。

下列方式会创建块格式化上下文:

格式化上下文影响布局,通常,我们会为定位和清除浮动创建新的 BFC,而不是更改布局,因为它将:


Demo-1 包含内部浮动
I am a floated box!

I am content inside the container.

I am a floated box!

I am content inside the overflow:auto container.

I am a floated box!

I am content inside the display:flow-root container.


Demo-2 排除外部浮动
Try to resize this outer float

Normal

Try to resize this outer float

display:flow-root


Demo-3 外边距重叠
red inner

参考

https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts