【问题标题】:Is an HTML5 <header> tag unnecessary if there is only a single <hx> tag inside it? [closed]如果 HTML5 <header> 标签里面只有一个 <hx> 标签,它是不必要的吗? [关闭]
【发布时间】:2014-10-08 09:51:11
【问题描述】:

我已经搜索并没有提出任何有用的答案,所以这里是:

如果 HTML5 &lt;header&gt; 标签里面只有一个 &lt;hx&gt; 标签,那么它是不必要的吗?例如,我有以下 HTML5 标记:

<article>

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

   ...

</article>

从 HTML5 语义的角度来看,当 &lt;header&gt; 中只有一个 &lt;hx&gt; 标记而没有其他标记时,&lt;header&gt; 标记是不必要的/冗余的,我应该这样做吗:

<article>

   <h1>Heading Title</h1>

   ...

</article>

【问题讨论】:

  • 这取决于您希望h1 中的内容是什么含义,我会说……如果该内容实际上构成了整个页面的标题,那么使用header 没有任何问题。
  • 也许反对语义的最佳论据是没有人就语义达成一致。
  • 您可能对W3C wiki &lt;header&gt; pageW3C HTML5 &lt;header&gt; spec 感兴趣,它们解释了元素的意图和一些语义/示例。
  • @JukkaK.Korpela 除非我弄错了,否则外观或功能都没有区别。我关心的是,从 HTML5 语义的角度来看,以一种方式还是另一种方式更正确
  • “所以,这只是意见问题,不是吗?”这可能只是一个意见问题,但我很难想象没有“最佳实践”或领先的思想流派。

标签: html semantics semantic-web semantic-markup


【解决方案1】:

From the first Note section on the W3C's header spec上面提到了ajp15243,重点是我的:

标题元素通常用于包含部分的标题(h1–h6 元素),但这不是必需的。 header 元素还可用于包装部分的目录、搜索表单或任何相关徽标。

如果您只有一个(根据您的示例)&lt;h1&gt;&lt;/h1&gt;,则不需要 &lt;header&gt; 标记,您的文档格式正确且语义正确。

您可能会发现将 &lt;header&gt; 元素作为包装器有助于您稍后使用 CSS 设置 h1 的样式,但就本例中的 HTML 而言,无论是否使用 @987654328,您在语义上都很好@。

【讨论】:

  • 这并没有解决所提出的问题。它处理元素的可能内容,而不是是否应该使用它。
  • 我理解该注释的意思是“
    元素不需要作为部分的 h1-h6 元素的包装器”,但我知道它也可以解释为“你可以使用 里面没有 h1-h6”。
【解决方案2】:

是的,在这种特定情况下是不必要的。这意味着,您可以使用 header(不会错),但也不是必需的。

header(连同footeraddress)用于标记不被视为主要内容of that section部分 内容。部分可以是sectioning root(如body)或sectioning content(如article)元素。

因此,当您的标题包含多个标题元素(例如,a subtitle)时,您应该使用header 元素,否则将不清楚此内容是标题的一部分还是标题的一部分主要内容。但是在单个标题元素的情况下,definition 很清楚:一个部分中的第一个标题元素是该部分的标题。

【讨论】:

    猜你喜欢
    • 2018-05-21
    • 2011-02-26
    • 1970-01-01
    • 2011-08-31
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多