语义:你想让它们正确,但有时它们只是令人困惑。
网站文件结构:
<body>
<header>
<div id="main">
<header> (not on every page)
<div id="content">
<footer> (not on every page)
<aside>
<footer>
用文章标签替换div#main在语义上是否正确?
为了在这个问题上提出死者,目前接受的答案很快就会不正确。有一个<main>
针对您需要的元素的扩展草案。此外,它在浏览器中自动化 ARIArole="main"
以获得更好的可访问性。请参阅此链接了解更多信息:https ://dvcs.w3.org/hg/html-extensions/raw-file/tip/maincontent/index.html
该规范是 HTML5 规范 [HTML5] 的扩展。它定义了一个元素,用于标识文档的主要内容区域。HTML5 规范中的所有规范性内容,除非被本规范明确覆盖,都旨在成为本规范的基础。
main 元素形式化了使用 id 值(例如“content”和“main”)来识别文档的主要内容部分的常见做法。它还定义了体现 WAI-ARIA [ARIA] 地标角色=main 的语义和功能的 HTML 元素。
<main>
<h1>Apples</h1>
<p>The apple is the pomaceous fruit of the apple tree.</p>
<article>
<h2>Red Delicious</h2>
<p>These bright red apples are the most common found in many
supermarkets.</p>
<p>... </p>
<p>... </p>
</article>
<article>
<h2>Granny Smith</h2>
<p>These juicy, green apples make a great filling for
apple pies.</p>
<p>... </p>
<p>... </p>
</article>
</main>
根据http://html5doctor.com/the-article-element/这是一种有效的语义编码方式。它被称为“博客风格<article>
”。
根据您的结构,您也可以#content
用文章替换。
不要忘记包含http://code.google.com/p/html5shiv/并且如果您通过https为您的网站提供服务,请同时查看 Protocol Relative Url(Google for it),所以您不会必须检测http和https之间的切换。
<section>
我认为用标签替换它会更合适。该<article>
标签适用于博客帖子、论坛帖子或报纸文章等内容(因此是标签的名称)。
相比之下,<section>
标签适用于文档中更通用的内容部分,因此更适合这种情况。