【问题标题】:Structure a site's contents with the section elements and headings使用部分元素和标题构建网站的内容
【发布时间】:2012-05-04 09:18:05
【问题描述】:

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

元素应该用于包装可以存储为单个数据库记录的内容。 (根据 HTML5doctor)并且标题应该是 inside 部分元素(尽管在数据库中我不会将标题存储在与内容相同的列中......)

到目前为止一切顺利,我重新组织了我的网站结构并由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 元素将主要内容与导航分开等(如下回答)

【问题讨论】:

    标签: html semantic-markup html-heading


    【解决方案1】:

    部分元素

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

    section 元素代表一个通用文档或应用程序部分。

    接着说

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

    因此,如果您要将某些内容存储为“单个数据库条目”,我认为应该使用文章代替部分。另请参阅this section 元素的注意事项和注意事项列表。

    文档大纲

    就您的文档大纲而言,很难说出发生了什么,因为您没有包含任何结束标签。你能发布一个完整、有效的 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. 关于我

    这是您期望的大纲吗?

    章节标题

    请注意,您不必使用h1h2h3 等,HTML5 大纲会根据您文章的嵌套深度或部分。如果您愿意,您可以在任何地方使用h1(尽管不要),并且大纲仍然会生成上述大纲。

    【讨论】:

    • 感谢推荐 section 元素和提案的 DOs 和 DON'Ts,但在文章中指出,article 和 section 元素都不应该用于将内容与页眉/页脚分开(推荐:div,请参阅第一个 DON'Ts 项),但 div 不会重置“标题计数器”--> 文章会是语义解决方案吗? (对不起,如果我惹恼了你,但目前唯一的问题是关于语义的问题,因为我本可以只使用 div 更容易地达到我的目标^^)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多