我的导航标签应该在我的部分标签中吗?

时间:2012-04-26 14:00:31

标签: html5 nav

我是这个“语义标记”的新手。但我不知道这是否正确。简而言之,在这种情况下,我不知道何时使用section vs nav标签。它应该是一个还是另一个,根本没有,或者完全和我一样?我说的是id = sidebar的部分。

<body>
    <div class="page">
        <header>
            <table id="formHeader" style="width:100%;text-align:center;">
                <tr>
                    <td></td>
                </tr>
            </table>
            <nav>
                <ul id="menu">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                </ul>
            </nav>
        </header>
        <section id="sidebar">
            @*<nav>*@
                Go To...
                <ul>
                    <li>First Move to Moon</li>
                    <li>First Move to Moon</li>                    
                </ul>
            @*</nav>*@   
        </section>
        <section id="main">        
            @RenderBody()                              
        </section>
        <footer>
        </footer>
    </div>
</body>

3 个答案:

答案 0 :(得分:1)

如果它是一个主要的导航实体 - 那么导航标签就是要使用的东西。我的拙见是,如果你需要将nav元素放在section标签内,那么它就不值得导航了。不是主要导航。

代码:

<section id="sidebar">
  <nav>
    Go To...
    <ul>
      <li>First Move to Moon</li>
      <li>First Move to Moon</li>                    
    </ul>
  </nav>   
</section>

....也许可以调用旁边的标签而不是部分。

答案 1 :(得分:1)

你需要了解两件事:

  • 每个切片内容元素(sectionarticleasidenav)都会在文档大纲中创建一个条目(使用大纲来播放,例如{{ 3}})。
  • 从这个意义上说,nav属于其最近的父分区内容元素,或最近的父分段根(如body)。

因此,您的示例将创建以下大纲:

 1. (no heading) → body
   1.1 (no heading) → nav
   1.2 (no heading) → section (#sidebar)
     1.2.1 (no heading) → nav
   1.3. (no heading) → section (#main)

第一个nav将是整个页面(或网站导航)的导航,因为它属于body

第二个nav将是侧边栏的导航(!)。

如果这适用于您的内容,您的示例就可以了。但是,如果侧边栏还包含其他内容,那么它可能才有意义,否则就没有理由首先进行导航。如果您无法找到父级section的标题(如果您实际使用它,则无关紧要),而不是可能出现问题。

如果您的结构不正确,没有人会看到您的实际内容。边栏中的nav用于什么?

  • 如果您的主要内容是ToC,则nav应该是此主要内容的子级。
  • 如果是页面/网站导航,则不应该是section(或任何其他切片元素)的子项,因此它属于body
  • ...

答案 2 :(得分:-1)

我不知道在部分标签内部或外部定位此类标签的特殊规则,但我真的相信,语义标记的主要目的是seo,这就是为什么无论你在哪里放置这个标签今天谷歌和其他人的搜索引擎都是聪明到可以找到它。