我需要一个主要元素的文章吗

Do I need an article in a main element

我想知道对于只有一篇文章(由几段文字组成)的页面(即没有章节的文章),是否最好使用 article 元素。从语义上讲,将所有内容放在没有 articlemain 元素中有什么问题吗?

举个例子,这个有什么问题吗:

<main>
  <h1>Lorem ipsum</h1>
  <p> Lorem ipsum dolor sit amet...</p>
  <p>Vivamus ut eros vulputate...</p>
  <p>In tincidunt a neque rutrum dapibus...</p>
</main>

或者这样更好:

<main>
  <article>
  <h1>Lorem ipsum</h1>
  <p> Lorem ipsum dolor sit amet...</p>
  <p>Vivamus ut eros vulputate...</p>
  <p>In tincidunt a neque rutrum dapibus...</p>
  </article>
</main>

查看了 MDN 后,似乎没有必要。它确实有一些你不能做的事情。

"<main> 不能是 <article><aside><footer><header><nav> 元素的后代。 每个文档只能使用一个 main 元素

这是我正在查看的页面“https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main

我会说如果它通过验证那么你就没问题。

如果 main 是唯一的,则不需要 articlespec 表示在这种情况下它是多余的。但是拥有一个并没有什么错,当您的页面是动态模板化和生成时,它会很有用,并且您的文章总是使用 article 元素进行模板化。

main 元素

您可以忽略 main 因素来做出此决定,因为它对 sections/outline 没有影响。

您的代码段之间的差异

您的两个代码段创建了不同的文档大纲 (you can test it with this Web app):

1. "Lorem ipsum"

对比

1. Document
  1.1 "Lorem ipsum"

您的第二个代码段没有为 body(这是一个分段根元素)提供标题元素,因此创建了一个隐式标题(即 Document).

第一个片段中的 h1body 的标题(即整个文档)。这在某些情况下是有意义的(例如,当 stand-alone 页面仅包含文章时),但对于您的典型网站(包含全局导航、侧边栏等),您通常希望拥有您的网站名称作为文档标题。

tl;博士

如果您的页面是 stand-alone 文档,而不是网站的一部分:

<body>

  <main>
    <h1>Lorem Ipsum</h1>
    <p></p>
  </main>

</body>

如果您有属于网站一部分的典型网页(具有全局导航):

<body>

  <h1>My site</h1>

  <main>
    <article>
      <h2>Lorem Ipsum</h2>
      <p></p>
    </article>
  </main>

  <nav>
  </nav>

</body>