详情请看:http://www.w3.org/TR/CSS2/visuren.html#containing-block
下面是我从文章复制过来的一段:
Boxes in the normal flow belong to a formatting context, which may be block or inline, but not both simultaneously. Block-level boxes participate in a block formatting context. Inline-level boxes participate in an inline formatting context.
大意是:盒子在正常流中有两种,要么是块级别,要么是行内级别的;块级别的是按照block formatting context 渲染的 (博主:不知道是不是国内说的BFC),而行内级别是由 inline formatting context 渲染的, ( 博主:不知道是不是国内说的IFC) .
9.4.1 Block formatting contexts
接下来的小节阐述 Block formatting contexts,下面这段话最重要:
Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with 'overflow' other than 'visible' (except when that value has been propagated to the viewport) establish new block formatting contexts for their contents.
floats, absolute 定位元素,块级是 (博主say: display属性为这几者的)inline-blocks, table-cells, and table-captions ,'overflow' 属性不是visible的;他们都不是block boxes,这几种都建立了一种新的 block formatting contexts。
所以是不是有两种block formatting context
一种是正常流中的,一种是满足以上条件的。所以网上的文章满足以上划线部分的,有特定的规则,比如可以从左到右排布,正常流中,块极元素大小无论尺寸多小,都是独占一行,不会有从左右排布的规则