框何时建立内联格式化上下文?

时间:2013-06-05 09:29:32

标签: css

我读到在某些情况下会从MDN:Block formatting context创建块格式化上下文。

我想知道盒子何时建立内联格式化上下文?

我知道的一个案例是:当一个块容器盒只包含内联级别的盒子时。

1 个答案:

答案 0 :(得分:9)

要回答您的问题,我会重新阅读Section 9.2.1 of the CSS 2.1 spec

根据我的阅读,您有了答案:当块容器框仅包含内联元素时,将触发内联格式化上下文。

与可以显式触发的块格式化上下文(例如,将overflow: hidden设置为块级元素)相比,无法显式触发内联格式化上下文。

内联格式化上下文似乎始终作为“主要块级别框”中的后代块框存在,并且这些后代块框可能是匿名的。

我提供以下描述作为理解块/内联格式化上下文的心理模型。

块级元素(例如<div>)履行两个职责:一个是定位,另一个是内容格式化。

处理定位时,块级元素充当“块级框”。

处理格式时,块级元素充当“块容器盒”。

作为“块级框”,块元素的行为符合position属性指定的定位类型(静态,绝对,相对,固定)。

作为“块容器盒”,如果block-element至少有一个子块级元素,则block-element建立块格式化上下文。如果所有子元素都是内联级别的框,则建立内联格式化上下文。

如果“块容器盒”包含文本和块元素,则将文本视为包含在一个或多个匿名块级别框中,并建立块格式化上下文。

<强>除了
CSS规范并不完全是轻读。我已经多次重读第9章和第10章,我还没有提出一个简单的英文翻译。