0

我已经知道在讨论部分元素的使用之外有很多线程 - 我已经阅读了很多,到目前为止我得出了以下结论:

<section> 元素应该用于包装可以存储为单个数据库记录的内容。(根据 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

当然,我可以将标题包含在某些部分元素中以重置此计数器,但我永远不会将整个主要内容存储为单个数据库条目 - 所以这将是对语义元素的无语义使用,这使得整个工作有些多余.

我是否错过了部分元素或嵌套标题的要点?任何如何处理这种行为的建议(这在理论上听起来很棒,但在实践中它似乎以一种奇怪的方式表现......)

编辑:我决定坚持“在可能是 RSS 项目的元素上使用文章”规则,因为这对我来说更有意义,并继续使用 section 元素将主要内容与导航等分开。(如下回答)

4

1 回答 1

1

截面元素

我不确定我是否同意您的部分定义。从HTML5规范它说

section 元素表示通用文档或应用程序部分。

它继续说

当联合元素的内容有意义时,鼓励作者使用 article 元素而不是 section 元素。

因此,如果您要将某些内容存储为“单个数据库条目”,我认为应该使用文章代替部分。另请参阅section元素的 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>

这产生了轮廓

  1. 我的页面标题
    1. 无标题部分(这是导航)
    2. 主要内容
      1. 主要内容的子标题
        1. 主要内容的子标题的子标题
          1. 主要内容的子标题的子标题
    3. 另一个主要内容的子标题
    4. 关于我

这是你期望的大纲吗?

章节标题

请注意,您不必使用h1,h2h3,HTML5 大纲将根据您的文章或部分的嵌套深度确定什么是标题、子标题等。如果您愿意,您可以在h1任何地方使用(尽管不要),并且大纲仍然会产生上述大纲。

于 2012-05-04T10:10:01.113 回答