w3c规范中的BFC定义:
浮动元素和绝对定位元素,非块级盒子的块级容器(列如 inline-blocks,table - cells,和 table - captions),以及overflow值为“visiable”的块级盒子,
都会为他们的内容创建新的BFC(块级格式上下文)。
在BFC中,盒子从顶端开始垂直地一个接一个地排列,两个盒子之间的垂直的间隙是由他们的margin值所在决定的。在一个BFC中,两个相邻的块级盒子的垂直外边距会产生折叠。
在BFC中,每一个盒子的左外边缘(margin - left)会触碰到容器的左边缘(border - left)(对右到左的格式来说,则触碰到右边缘)。
BFC的通俗理解:
首先BFC是一个名词,是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子里面物品的摆放是不受外界的影响。转换为BFC的理解则是:BFC中的元素的布局是不受外界的影响(我们往往利用这个特性来消除浮动元素对其非浮动的兄弟元素和其子元素带来的影响。)并且在一个BFC中,块盒与行盒(行盒由一行中所以的内联元素所组成)都会垂直的沿着其父元素的边框排列。