块容器盒内的内联和块级盒子

时间:2014-02-04 10:59:02

标签: html css

在sec 9.2.1的CSS规范中说:

  

除了在后面的章节中描述的表格盒子,和   替换元素,块级框也是块容器框。一个   块容器框或者只包含块级框或   建立内联格式化上下文,因此仅包含   内联级框。   考虑标记:

<div id="d">
    <div>Anonymous text</div>
    <span>Some text</span>
    <span>Another some text</span>
    <div>Another anonymous text</div>
</div>

和样式:

div#d{
    width: 300px;
    height: 300px;
    background: aqua;
}

在我的情况下,div#d包含块级和内联级框。但是在第二节。 9.2.1.1

  

如果是一个块容器盒(例如为上面的DIV生成的那个盒子)   里面有一个块级盒子(比如上面的P),然后我们强迫   它里面只有块级盒子。

问:为什么我们可以将块级元素(例如div)放入内联元素和块元素中,它们将显示为内联元素和块元素,但在规范中说块容器框只包含块-level框或建立内联格式化上下文,因此只包含内联级框。

我很困惑。你能消除我的怀疑吗?

1 个答案:

答案 0 :(得分:3)

规范继续说:

中断前和中断后的行框都包含在匿名块框中,块级框成为这些匿名框的兄弟

因此内联元素包含在“匿名块”(由浏览器中的CSS引擎生成,对DOM检查器不可见)中,它们是块级的,因此容器的所有子元素都是块级的,而不是块和内联元素的混合。