0

section元素用作页面的主要内容部分在语义上是否正确?


4

3 回答 3

4

你可以,但我鼓励你改用新main元素!

例如

<main role="main">

</main>

请参阅主要元素有关使用主要元素的更多示例

于 2013-02-14T11:52:17.627 回答
3

广义地说,没有。

HTML5Doctor 说

我们一直在做的错误是使用部分来包装内容以对其进行样式化,或者将主要内容区域与导航、页眉、页脚等区分开来。这些是 div 的工作,而不是部分。

自从写了那篇文章以来,<main>已经为您的确切用例发明了该元素。

于 2013-02-14T11:55:38.453 回答
0

您可以说,只要section您有一个不是分段元素标题的标题 ( h1- ),您就隐含地使用它。h6

所以这两个文档在语义上是等价的:

1)

<body>
  <h1>John's cool site</h1>
  <nav>…&lt;/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>…&lt;/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每个标题内容组使用(当然,除非articlenav或者aside应该使用)。

只要您对所有这些标题内容组使用分段元素,您就可以h1在任何地方使用。

甚至在某些极端情况下,您需要明确地对主要内容使用分段元素。即,如果您的页面包含不属于主要内容的内容并且不适合header,footeraddress(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>…&lt;/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作为页面的主要内容。

于 2013-02-15T12:25:15.660 回答