1.什么是BFC?css
所谓BFC就是blocking formatting context块级格式上下文。它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。html
最多见的 Formatting context 有 Block fomatting context (简称BFC)和 Inline formatting context (简称IFC)。css3
对一个元素设置CSS,首先须要知道这个元素是block仍是inline类型。而BFC就是用来格式化块级盒子,一样管理inline类型的盒子还有IFC,以及其余的FC。ide
2.那么什么叫FC?布局
FC就是Formatting Context,指页面中的一个渲染区域,而且拥有一套渲染规则,他决定了其子元素如何定位,以及与其余元素的相互关系和做用。spa
3.Box: CSS布局的基本单位orm
Box 是 CSS 布局的对象和基本单位, 直观点来讲,就是一个页面是由不少个 Box 组成的。元素的类型和 display 属性,决定了这个 Box 的类型。 不一样类型的 Box, 会参与不一样的 Formatting Context(一个决定如何渲染文档的容器),所以Box内的元素会以不一样的方式渲染。让咱们看看有哪些盒子:htm
4.BFC的生成对象
BFC是一块渲染区域,那这块渲染区域到底在哪,它又是有多大,这些由生成BFC的元素决定blog
CSS2.1中规定知足下列CSS声明之一的元素便会生成BFC。
把display:table也认为能够生成BFC,其实这里的主要缘由在于Table会默认生成一个匿名的table-cell,正是这个匿名的table-ccell生成了BFC
5.BFC的布局规则
参考文档:
http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html
http://www.cnblogs.com/dojo-lzz/p/3999013.html