如果在 HTML5 的 <header> 标签中只有一个单独的 <hx> 标签,那么这个 <header> 标签是否是不必要的?

3

我已经搜索了很多,但没有找到有用的答案,所以在这里提问:

如果一个HTML5文档中只有一个<hx>标签,那么是否不需要使用<header>标签呢?例如,我有以下HTML5标记:

<article>

   <header>
      <h1>Heading Title</h1>
   </header>

   ...

</article>

从HTML5语义学的角度来看,如果

中只有一个标签而且没有其他内容,那么
标签是不必要的/冗余的,您可以直接这样做:

<article>

   <h1>Heading Title</h1>

   ...

</article>

这取决于您希望h1标签内的内容具有什么样的“意义”...如果该内容实际上构成整个页面的标题,则使用header并没有任何问题。 - CBroe
你希望从首次使用“header”中获得什么? - Jukka K. Korpela
@PeterAndrews 是什么意思?外观和功能有何不同? - Jukka K. Korpela
1
除非我错了,否则在外观或功能方面不会有任何区别。我关心的是从HTML5语义角度来看,哪种方式更正确。 - Peter Andrews
1
所以,这只是一个观点问题,不是吗?也许只是一个观点问题,但我很难想象没有“最佳实践”或领先的思想流派。 - Peter Andrews
显示剩余4条评论
2个回答

3

在这种情况下,使用 header 是不必要的。也就是说,你可以使用 header (这并不是错误的),但它也不是必需的。

header(连同{{link2:footer}}和{{link3:address}})用于标记不被视为该部分主要内容{{link4:该部分}}的部分内容。一个部分可以是节根(如body)或节内容(如article)元素。

因此,当您的标题包含多个标题元素时(例如,一个副标题),应使用header元素,否则无法确定此内容是标题还是主要内容的一部分。但是,在只有一个标题元素的情况下,可以通过定义明确:章节中的第一个标题元素是该章节的标题。

2

从W3C的

规范的第一个注释部分开始,这是由上面提到的ajp15243,强调我的:

header元素通常包含章节的标题(h1-h6元素),但不是必需的。header元素还可以用于包装章节的目录、搜索表单或任何相关的标志。

如果您只有一个单独的(如您的示例)<h1></h1>,则在您的文档中使用<header>标记并不是必需的,以使其正确形成和语义上正确。

您可能会发现,在CSS中将

元素作为包装器有助于您稍后对

进行样式设置,但就HTML本身而言,在这种情况下,是否使用
都没有语义问题。


这并没有回答所提出的问题。它涉及元素可能的内容,而不是是否应该使用它。 - Jukka K. Korpela
1
我理解这个注释的意思是“<header>元素不需要作为一个部分的h1-h6元素的包装器”,但我也明白它可以被解释为“你可以在<header>中使用没有h1-h6的内容”。 - simmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接