在完整的文章页面上,文章标题应该位于 <article> 标签内吗?

Dan*_*man 5 html semantic-markup

如果我将文章标题(也是页面的主标题)放在标签之外<article>,则文档大纲的页面主标题就是文章标题。这似乎是可取的。

IE

<h1>My wonderful article</h1> 
<article>   
     <p>Text of my article</p> 
</article>
Run Code Online (Sandbox Code Playgroud)

然而<article>标签规范说

Article 元素表示构成文档或站点的独立部分的内容部分;

我对此的解释是作为一个“独立部分”,它需要其中的文章标题。标题绝对是文章的从属部分。

但是,如果您将文章标题放在标签中<article>,则该页面在文档大纲中不会有标题。

这里的最佳实践是什么?

uno*_*nor 3

当文档只包含这篇文章时,则省略该article元素:

\n\n
<body>\n  <h1>My wonderful article</h1>\n  <p>\xe2\x80\xa6</p>\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n\n

当文档还包含其他内容(例如站点范围的导航、包含相关文章的侧边栏等)时,您不希望文章\xe2\x80\x99s 标题成为文档\xe2\ x80\x99s 标题

\n\n
<!-- wrong! -->\n<body> \n  <h1>My wonderful article</h1>\n  <article></article>\n  <nav></nav>\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么?因为站点范围的导航不应该在仅与文章相关的标题范围内。文档标题应描述文档的全部内容,而不仅仅是其主要部分。所以你需要这样一个额外的文档标题。

\n\n

要么明确提供文档标题(通常为\xc2\xb9,使用站点名称)\xe2\x80\xa6

\n\n
<body> \n  <h1>My wonderful site</h1>\n  <article><h1>My wonderful article</h1></article>\n  <nav></nav>\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6 或省略它(如果必须,则为 \xe2\x80\xa6;这要求您在适当的地方使用分段元素),本质上是在大纲中创建一个未标记的条目:

\n\n
<body> \n  <article><h1>My wonderful article</h1></article>\n  <nav></nav>\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n\n

(\xc2\xb9 我的一些相关答案,包含更多详细信息:123。)

\n