引用规范:
块级框是参与块格式化上下文的框。每个块级元素生成一个主块级框,其中包含后代框和生成的内容,也是任何定位方案中涉及的框。一些块级元素可能会生成除主框之外的其他框:“列表项”元素。这些附加框相对于主框放置。
它们本质上是一样的吗?
主要块级框是由给定元素生成的块级框,该元素直接受应用于该元素的样式规则影响。
大多数元素只生成一个框。对于这些元素,它们本质上是相同的,因为不涉及其他框。
但是,一个元素可以根据其显示类型生成多个框,例如列表项;当您为此类元素声明样式时,这些样式通常应用于主框,并且生成的任何其他框都将相应地呈现。
例如,一个列表项除了主框外还有一个标记框;如果您指定list-style-position: outside
,列表标记将放置在主体框的边界之外,但主体框的背景和边框不会受到影响。请注意,标记框仍然是主框的后代,因此可继承的属性(例如)color
将应用于标记(这就是为什么color: red
将文本及其项目符号标记变为红色的原因)。
大多数其他块级元素,包括display: block
但不包括display: table
(参见第 17.4 节),只会为它们的内容生成一个主要的块盒,而不是其他任何东西,使它们基本上只是“块盒”,但仅限于那些元素。
换句话说,所有主体块级框都是块级框,但并非所有块级框都是主体,例如匿名块框。此外,包括内联块在内的内联元素本身不会生成任何主盒,也没有主内联盒之类的东西。
主要块本质上是您的“标记”所代表的内容,出于机械目的,某些“主要”元素需要正确呈现其他元素,这些是浏览器显示额外内容所需的某种“工件”(来自例如文本区域)