4

这对我来说似乎很奇怪,但奇怪的是有理由使用 a <header>inside a <header>

<hgroup>从规范中删除后,我似乎处于一种奇怪的状态,我应该/可以用下面的代码做什么。

<header>
    <header>
        <h1>Maecenas faucibus</h1>
        <p class="h1-sub">Donec sed odio dui.</p>
    </header>
    <section>
        <img src="..." alt="faucibus">
        <img src="..." alt="faucibus">
        <img src="..." alt="faucibus">
    </section>
</header>

这确实都出现在 an 的标题部分中,<article>所以我想知道它是否确实出现在那里,然后我应该仍然将它定义为 a<header>还是应该将其全部包装成如下内容:

<section class="article-header">
    <header><h1>...</h1><p>...</p></header>
    <section>...</section>
</section>

我没有遇到任何说<header>不能嵌套在自身内部的东西,并且想知道这是否是同一个调用,<article>如果它具有逻辑意义,您可以嵌套在自身中(因此,如果将某些东西组合在一起是有意义的,但仍然可以通过本身)。

4

2 回答 2

5

根据HTML5 规范,在另一个元素中包含一个元素是无效的。<header><header>

这很有趣,因为<header>允许的内容在技术上确实允许:

允许的内容->流内容->流元素->标题

但是,存在特定于<header>元素的约束 - 它们包括:

  • 页眉元素不能作为页脚元素的后代出现。

  • 标头元素不得作为地址元素的后代出现。

  • 标题元素不得作为标题元素的后代出现。

因此,它不是有效的标记——无论是作为直接子元素还是作为后代元素。

于 2013-05-14T14:58:33.873 回答
2

查看您刚刚发布的 HTML5 规范的链接 ( http://www.w3.org/TR/html-markup/header.html ) 它说..

“标题元素不得作为标题元素的后代出现。”

因此,根据规范,它包含流内容,但不包括页眉、页脚或主要元素。

于 2013-05-14T15:40:16.627 回答