在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框或建立内联格式化上下文,因此只包含内联级框。
我很困惑。你能消除我的怀疑吗?
答案 0 :(得分:3)
规范继续说:
中断前和中断后的行框都包含在匿名块框中,块级框成为这些匿名框的兄弟
因此内联元素包含在“匿名块”(由浏览器中的CSS引擎生成,对DOM检查器不可见)中,它们是块级的,因此容器的所有子元素都是块级的,而不是块和内联元素的混合。