在CSS规范的sec9.2.1中说:
除了后面章节中描述的表格框,以及
替换元素时,块级框也是块容器框。一个
块容器框要么只包含块级框,要么
建立内联格式上下文,因此仅包含
内联水平框。
考虑一下标记:
<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
)中,它们将显示为内联和块元素,但在规范中,块容器框要么只包含块级框,要么建立内联格式上下文,因此只包含内联级别框。我很困惑。你能消除我的疑虑吗?
最佳答案
规范接着说:
中断前和中断后的行框被封装在匿名块框中,块级框成为这些匿名框的同级
因此内联元素被包装在“匿名块”(由浏览器中的CSS引擎生成,DOM检查器不可见)中,即块级别,因此容器的所有子元素都是块级别,而不是块和内联元素的混合。