CSS规范:块级框,块容器框和块框

时间:2015-06-17 06:33:17

标签: css

我正在阅读CSS Spec 2.1并发现难以区分的概念:

  

除了后面章节中描述的表格框和替换元素之外,块级框也是块容器框。块容器框要么只包含块级框,要么建立内联格式化上下文,因此只包含内联级框。并非所有块容器框都是块级框:未替换的内联块和未替换的表格单元是块容器,但不是块级框。也是块容器的块级框称为块框。

我可以将上面的描述解释如下吗?:

enter image description here

2 个答案:

答案 0 :(得分:7)

您的解释是正确的。

以下是一些其他细节:

  • 表格框不是块容器的原因是因为它建立了表格布局,而不是块布局。内容进入单元格元素而不是表格元素,这就是单元格框是块容器而不是表格框本身的原因。

  • 替换元素不包含任何其他内容,因此不能是块容器。

  • 块框和内联块之间的唯一区别是前者是块级,而后者是内联级。因此,显示值分别为display: blockdisplay: inline-block。由于两者都是块容器,因此它们的内容格式没有区别。

请注意,替换的元素和表格框可以是内联级别或块级别。内联表和内联替换元素只是从您引用的部分中排除,因为该部分仅适用于块级框;您可以在第9部分或1017部分找到对它们的引用。

此外,即使块容器盒只能包含块级框或内联级框,您仍然可以在同一个块容器框中混合它们;在内部,它只是通过anonymous block boxes分隔块级和内联级框。

答案 1 :(得分:0)

请记住,HTML是一棵树,因此每个节点都可以同时充当父级(子级)和子级(父级)

牢记这一点,事情开始变得有意义,块级框是指框充当 chlid

块级框是参与块格式化的框 上下文。

另一方面,阻止容器框是指可以容纳其他人的父母

一个块容器框仅包含块级框,或者 建立内联格式上下文,因此仅包含 内联级框

就像节点可以是子节点还是父节点一样,HTML节点可以充当父节点(块容器框)或子节点(块级框)或两者

例如,如果不允许节点中的子级(已替换元素),则它永远不能是父级,最多只能是一个子级(块级框),而不能是父级(块容器框)< / p>

并且没有理由阻止非块父包含块父。 inline-block本身不是块,但可以包含块级框

重点是从父子观点更容易理解规范