将section
元素用作页面的主要内容部分在语义上是否正确?
3 回答
广义地说,没有。
我们一直在做的错误是使用部分来包装内容以对其进行样式化,或者将主要内容区域与导航、页眉、页脚等区分开来。这些是 div 的工作,而不是部分。
自从写了那篇文章以来,<main>
已经为您的确切用例发明了该元素。
您可以说,只要section
您有一个不是分段元素标题的标题 ( h1
- ),您就隐含地使用它。h6
所以这两个文档在语义上是等价的:
1)
<body>
<h1>John's cool site</h1>
<nav>…</nav>
<h2>A nice article</h2> <!--- main content starts with this heading -->
<p>I like bees.</p>
</body> <!-- main content ends at the end of the document -->
2)
<body>
<h1>John's cool site</h1>
<nav>…</nav>
<section><!--- main content starts with this opening tag -->
<h2>A nice article</h2> <!-- now you could use h1 here, too -->
<p>I like bees.</p>
</section><!-- main content ends with this closing tag -->
</body>
所以,是的,您可以将section
其用于主要内容(但在许多情况下article
会更合适)。您可以section
对每个标题内容组使用(当然,除非article
,nav
或者aside
应该使用)。
只要您对所有这些标题内容组使用分段元素,您就可以h1
在任何地方使用。
甚至在某些极端情况下,您需要明确地对主要内容使用分段元素。即,如果您的页面包含不属于主要内容的内容并且不适合header
,footer
或address
(nor aside
/ nav
)。如果您在这种情况下不使用section
(或article
),则此内容仍属于主要内容。
一个更常见的(我什至会说,非常)示例,您应该将section
/article
用于主要内容将是一个页面,您需要一个单独的header
/footer
用于主要内容,例如博客文章页面:整个页面可能有一个footer
(包含有关整个博客的信息)。现在,如果我们不为主要内容(→ 博客文章)使用分段元素,我们就不能footer
只为那篇文章单独(包含作者信息、标签、类别等)。
<body>
<h1>John's blog</h1>
<article>
<h1>My first blog post</h1>
<p>…</p>
<footer> <!-- applies to the blog post only (article) -->
Tags: introduction, aboutme
</footer>
</article>
<footer> <!-- applies to the whole page (body) -->
Blog of John Doe — 2013
<p><small>All content licensed under Creative Commons</small></p>
</footer>
</body>
所以我建议:如果有疑问,明确使用section
/article
作为页面的主要内容。