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

dot*_*00b 0 html nav

我是这个“语义标记”的新手。但我不知道这是否正确。简而言之,在这种情况下,我不知道何时使用 section 与 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>
Run Code Online (Sandbox Code Playgroud)

uno*_*nor 5

你需要明白两件事:

  • 每个分节内容元素 ( section, article, aside, nav) 在文档大纲中创建一个条目(玩转大纲,例如gsnedders HTML5 Outliner)。
  • 从这个意义上说,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)
Run Code Online (Sandbox Code Playgroud)

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

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

如果这适用于您的内容,则您的示例很好。但它可能只有在侧边栏还包含其他内容时才有意义,否则首先就没有理由有导航。如果您找不到 parent 的标题(实际上是否使用它并不重要)section,则可能有问题。

没有看到您的实际内容,没有人可以回答您的结构是否正确。nav侧边栏中的是做什么用的?

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