白话Block Formatting Contexts
这篇讲的是CSS中一个常被提及但容易迷糊的概念——Block Formatting Context(BFC)。作者从“为什么明明设置了overflow却没效果”这类常见困惑出发,用大白话拆解了BFC的触发机制与实际影响。 文章没有堆砌规范术语,而是通过“容器如何包裹浮动子元素”、“margin collapse现象在何时失效”等具体场景,对比了普通文档流与BFC的布局差异。尤其厘清了BFC并非某种“模式”,而是页面渲染时的一种隔离性独立渲染区域,它决定了内部元素的排布如何与外部互不干扰。 关键细节在于,作者列举了`overflow: hidden`、`display: flow-root`、`float`等多种触发BFC的方式,并解释了它们各自适用的场景。例如,`display: flow-root`是为创建BFC而生的现代方案,比滥用`overflow`更语义化。这种对比让读者能根据实际需求选择正确方法,而非盲目套用。 对于前端开发者而言,理解BFC能解释许多布局上的“为什么”,比如为什么浮动会导致父容器高度塌陷,或如何清除浮动而不引入额外标记。文章将这一底层渲染逻辑讲得透彻且实用,帮你从根源上避免布局上的“坑”。