BFC 神奇背后的原理
转载http://blog.melonhuang.gitpress.org/~docs/css/1formattingContext.md BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC , 以及 BFC 的一些用处(如清浮动,防止margin重叠等)。虽然我知道如何利用 BFC 解决这些问题,但当别人问我 BFC 是什么,我还是不能很有底气地解释清楚。于是这两天仔细阅读了CSS2.1 spec, 和许多文章,来全面地理解BFC: BFC 是个什么? 哪些元素会生成 BFC BFC 的神奇的作用,及背后的原理 一、BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box , Formatting context 的概念。 Box: CSS布局的基本单位 Box 是CSS布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的。元素的类型和display属性,决定了这个 Box 的类型。 不同类型的 Box , 会参与不同的 Formatting context (一个决定如何渲染文档的容器),因此 Box 内的元素会以不同的方式渲染。让我们看看有哪些盒子: block-level box : display属性为block, list-item, table的元素,会生成 block-level box 。并且参与