HTML5Doctor 上的这篇文章“避免常见的 HTML5 错误”说:
如果您的元素仅包含一个标题元素,请省略
<header>
.
根据文章,这是不好的做法:
<article>
<header>
<h1>Heading</h1>
</header>
<p>Content …</p>
</article>
w3c说:
标题元素通常旨在包含节的标题(h1–h6 元素或 hgroup 元素),但这不是必需的。header 元素还可用于包装部分的目录、搜索表单或任何相关徽标。
现在我很困惑。规范明确指出,它通常包含一个标题。它还可以容纳其他内容。但没有一个是强制性的。
所以在我看来,上面的代码是绝对有效的并且在语义上是正确的。
我想象这样一种情况,即<header>
-element 的内容来自 CMS,它可能导致完整的标题或单个标题。在这种情况下,您必须始终检查元素的内容并相应地添加包装器。似乎不值得努力,对吧?
也许我忽略了一些东西,有人可以解释我,为什么这是不好的做法。