我需要一个主要元素的文章吗
Do I need an article in a main element
我想知道对于只有一篇文章(由几段文字组成)的页面(即没有章节的文章),是否最好使用 article
元素。从语义上讲,将所有内容放在没有 article
的 main
元素中有什么问题吗?
举个例子,这个有什么问题吗:
<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
是唯一的,则不需要 article
; spec 表示在这种情况下它是多余的。但是拥有一个并没有什么错,当您的页面是动态模板化和生成时,它会很有用,并且您的文章总是使用 article
元素进行模板化。
main
元素
您可以忽略 main
因素来做出此决定,因为它对 sections/outline 没有影响。
您的代码段之间的差异
您的两个代码段创建了不同的文档大纲 (you can test it with this Web app):
1. "Lorem ipsum"
对比
1. Document
1.1 "Lorem ipsum"
您的第二个代码段没有为 body
(这是一个分段根元素)提供标题元素,因此创建了一个隐式标题(即 Document).
第一个片段中的 h1
是 body
的标题(即整个文档)。这在某些情况下是有意义的(例如,当 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>
我想知道对于只有一篇文章(由几段文字组成)的页面(即没有章节的文章),是否最好使用 article
元素。从语义上讲,将所有内容放在没有 article
的 main
元素中有什么问题吗?
举个例子,这个有什么问题吗:
<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
是唯一的,则不需要 article
; spec 表示在这种情况下它是多余的。但是拥有一个并没有什么错,当您的页面是动态模板化和生成时,它会很有用,并且您的文章总是使用 article
元素进行模板化。
main
元素
您可以忽略 main
因素来做出此决定,因为它对 sections/outline 没有影响。
您的代码段之间的差异
您的两个代码段创建了不同的文档大纲 (you can test it with this Web app):
1. "Lorem ipsum"
对比
1. Document
1.1 "Lorem ipsum"
您的第二个代码段没有为 body
(这是一个分段根元素)提供标题元素,因此创建了一个隐式标题(即 Document).
第一个片段中的 h1
是 body
的标题(即整个文档)。这在某些情况下是有意义的(例如,当 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>