我已经知道在讨论段元素的使用之外有很多线程 - 我已经阅读了很多它们,到目前为止我得出了以下结论:
A< section> element应该用于包装可以存储为单个数据库记录的内容。 (根据HTML5doctor)并且标题应该在里面 section元素(尽管在数据库中我不会将标题存储在与内容相同的列中...)
到目前为止这么好,我重新组织了我的网站的结构,并通过http://gsnedders.html5.org/outliner/进行了分析 - 但令人惊讶的是它忽略了我的h1,h2,...标题顺序(在某处我读到了特殊元素重置了标题左右......?:S)这让我很生气。
到目前为止,我已经有了一个类似的结构(为了样式目的而跳过一些div):
<header>
<section>
h1 // title of my page --> h1
</section>
<section>
<nav>...</nav>
</section>
</header>
<div role="main"> // don't use section for your website's main content
h2 // main content
<section>
h3 // main content's sub heading
</section>
<section>
h4 // sub heading of main content's sub heading
h5
h5
</section>
<section>
h3 // another main content's sub heading
</section>
</div>
<aside>
<section>
h3 // about me
</section>
</aside>
而不是预期的大纲:
title of my page
navigation
main content
main content's sub-headings, etc.
about me
我得到了:
main content
title of my page
navigation
main content's sub entries
about me
当然我可以将我的标题包含在某些部分元素中以重置此计数器,但我永远不会将整个主要内容存储为单个数据库条目 - 所以这将是语义元素的非语义用法,这使得整个工作有点多余。
我是否错过了section元素或嵌套标题的要点?任何建议如何处理这种行为(这在理论上听起来很棒,但在实践中似乎表现得很奇怪......)
编辑:我决定坚持使用“关于可能是RSS项目的元素的文章”规则,因为它对我来说更有意义,并继续使用section元素来保持主要内容与导航不同等(如下所述)答案 0 :(得分:1)
节元素
我不确定我是否同意您的章节定义。从HTML5规范中可以看出
section元素表示通用文档或应用程序部分。
接着说
鼓励作者使用article元素而不是section元素,因为联合元素的内容是有意义的。
因此,如果您要将某些内容存储为“单个数据库条目”,我认为应该使用一篇文章代替该部分。另请参阅this部分元素的DO和DON'T的良好列表。
文档大纲
就您的文档大纲而言,由于您没有包含任何结束标记,因此很难判断发生了什么。你能发布一个完整,有效的HTML示例吗?
我建议您阅读Mozilla Developers Network上的HTML5文档概述。以你的例子为例,在我认为它们应该是的地方添加结束标记,并根据这篇文章,我会提出HTML
<doctype html>
<header>
<h1>title of my page</h1>
</header>
<nav>My Nav</nav>
<article id="main-content">
<h2>main content</h2>
<section>
<h3>main content's sub heading</h3>
<section>
<h4>sub heading of main content's sub heading</h4>
<section>
<h5>a sub, sub heading of main content's sub heading</h5>
</section>
</section>
</section>
<section>
<h3>another main content's sub heading</h3>
</section>
</article>
<aside>
<h3>about me</h3>
</aside>
这会产生轮廓
这是你期望的大纲吗?
章节标题
请注意,您不必使用h1
,h2
,h3
等,HTML5大纲将确定什么是标题,基于深度的子标题嵌套您的文章或部分。你可以,如果你已经到处,可以在任何地方使用h1
(尽管不这样做),大纲仍然会产生上述轮廓。