假设我们有一个这样的页面:
<!DOCTYPE HTML><HTML><BODY>
<ARTICLE>
<H1>Heading Example</H1>
<P>Here is what a heading (level 2) looks like:</P>
<FIGURE>
<H2>Demo Heading</H2>
</FIGURE>
</ARTICLE>
</BODY></HTML>
在解析此页面时,H2
元素是否应该被视为新子节的语义开头?是否有任何当前正在服务的节目表现出这种行为(特别是处理内部的标题)解析文档时figure
有所不同吗?根据我对HTML5规范的了解,我认为它不应该被视为新部分的开头,但也许它应该和我不正确。
答案 0 :(得分:2)
figure
是sectioning root。除非标题本身出现在切片根目录中的不同切片内容元素之后或之内,例如页面中的article > h1
,否则任何切片根中的第一个标题永远不会开始子切片,无论其等级如何。 Here是规范的相关部分:
切片内容元素中标题内容的第一个元素表示该部分的标题。等级或更高等级的后续标题开始新的(隐含的)部分,较低等级的标题开始隐含的子部分是前一部分的一部分。在这两种情况下,元素代表隐含部分的标题。
请注意,本段未提及切片根。切片内容元素和切片根元素之间的唯一区别是后者具有自己的轮廓,该轮廓与页面的其余部分完全分开。否则它们基本相同。
所以,从理论上讲,你是对的。这就是应该的行为。但是我不熟悉大纲实现,因此我不知道是否存在任何没有正确实现多个分段根的存在。然而,我确实通过this tool运行了代码段并且似乎正确处理了它(默认情况下隐藏了body
以外的分段根,但您可以选择显示所有这些根。)