8

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

我想知道一个盒子什么时候建立一个内联格式化上下文?

我知道的一种情况是:当一个块容器框只包含内联级框时。

4

1 回答 1

13

为了回答您的问题,我重读了 CSS 2.1 规范的第 9.2.1 节

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

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

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

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

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

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

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

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

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

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

除了
CSS 规范不完全是轻松阅读。我已经重读了第 9 章和第 10 章几次,但我还没有想出一个简单的英文翻译。

于 2013-06-05T12:07:12.773 回答