【问题标题】:HTML5 + Section or DivHTML5 + 部分或 div
【发布时间】:2011-10-17 10:09:39
【问题描述】:

我有一个非常具体的问题,希望在这里提问时没问题。

下列哪项是正确的用法:

1)

<div id="more">
    <div class="box">
        <h4>Links</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
    <div class="box">
        <h4>Partner</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
    <div class="box last">
        <h4>More</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
</div><!-- #more END -->

2)

<section id="more">
    <div class="box">
        <h4>Links</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
    <div class="box">
        <h4>Partner</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
    <div class="box last">
        <h4>More</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </div>
</section><!-- #more END -->

3)

<section id="more">
    <section class="box">
        <h4>Links</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </section>
    <section class="box">
        <h4>Partner</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </section>
    <section class="box last">
        <h4>More</h4>
        <ul>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
            <li><a href="#" title="title">List 2</a></li>
        </ul>
    </section>
</section><!-- #more END -->

注意:代码 sn-p 位于网站底部,包含指向合作伙伴网站的链接、指向其他页面的链接以及指向其他类别/页面的站内链接。

如果您认为上述示例都不正确,您可以在这里发布您认为最好的解决方案吗?

如果情况 3) 最好:比我还应该将 h4 更改为 h1 并将它们放入 header

【问题讨论】:

    标签: html semantics


    【解决方案1】:

    以上都不是。

    Section 定义为:“用于文档中的一个部分。例如章节、页眉、页脚或文档的任何其他部分”。许多 HTML5 元素,例如 section,不提供新功能,而是提供文档语义(如您所标记的:)。 Section 和 div 看起来很像; section实际上是一个div,它本身包含元信息。

    部分有 3 条一般经验法则:

    -不要将它用作样式或脚本的钩子;这是一个div

    -如果 article、aside 或 nav 更合适,请不要使用它

    -除非部分开头自然有标题,否则不要使用它

    所以这实际上取决于您的文档结构。在 HTML 中,“更多”包含一段超链接。您应该选择 2) 并将 section-element 更改为 nav-element。

    http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#the-nav-element

    【讨论】:

    • 感谢您的回答,但我认为 nav 元素仅用于“主要站点导航”,不应用于几个链接。
    • 我的印象是“更多”是您页面中的主要网站导航块,因为它包含 9 个(也许更多?)链接。同样,一些新的 HTML 元素的使用确实是特定于内容的。
    • 不,抱歉,我解释得不够清楚——那是我的错。 “更多”块位于页面底部,其中包含指向其他网站的各种链接,但主导航位于顶部,并且仅链接到我网站上的页面。
    • 好吧,我想你可以使用 HTML5 页脚标签 :)
    • +1 表示“不要将它用作样式或脚本的挂钩;那是一个 div”
    【解决方案2】:

    我认为 3 可能是你列出的最好的版本,尽管你可能想给 the specification 一次,看看描述的用法与你正在做的事情是如何匹配的。我要补充的一件事是,除非它是更大的内容分组的一部分,否则您可能需要考虑使用&lt;aside&gt; 标记来包装链接,因为它是页面其余部分之外的内容。但是,如果它是侧边栏或页脚的一部分,我认为&lt;section&gt; 标签可以正常工作。

    至于&lt;h4&gt;&lt;h1&gt; 的问题,我不是100% 确定,但它可能不会受到伤害。 The W3C 建议分层使用标签,所以我想说的是,除非您将链接部分放在另一个使用 &lt;h1&gt; 的部分中,否则它应该是正确的做法。

    【讨论】:

    • 谢谢!没错,就是内容被搁置一旁,但不一定和内容有关。因此,我认为使用搁置是错误的。我想我现在可能只会坚持使用 3)。我只是担心(seo-wise)有这么多h1,但那是另一个讨论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2019-08-21
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多