答案 0 :(得分:9)
要回答您的问题,我会重新阅读Section 9.2.1 of the CSS 2.1 spec。
根据我的阅读,您有了答案:当块容器框仅包含内联元素时,将触发内联格式化上下文。
与可以显式触发的块格式化上下文(例如,将overflow: hidden
设置为块级元素)相比,无法显式触发内联格式化上下文。
内联格式化上下文似乎始终作为“主要块级别框”中的后代块框存在,并且这些后代块框可能是匿名的。
我提供以下描述作为理解块/内联格式化上下文的心理模型。
块级元素(例如<div>
)履行两个职责:一个是定位,另一个是内容格式化。
处理定位时,块级元素充当“块级框”。
处理格式时,块级元素充当“块容器盒”。
作为“块级框”,块元素的行为符合position
属性指定的定位类型(静态,绝对,相对,固定)。
作为“块容器盒”,如果block-element至少有一个子块级元素,则block-element建立块格式化上下文。如果所有子元素都是内联级别的框,则建立内联格式化上下文。
如果“块容器盒”包含文本和块元素,则将文本视为包含在一个或多个匿名块级别框中,并建立块格式化上下文。
<强>除了强>
CSS规范并不完全是轻读。我已经多次重读第9章和第10章,我还没有提出一个简单的英文翻译。