0

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

3 回答 3

6

你需要明白两点:

  • 每个分段内容元素 ( 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)

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

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

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

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

  • 如果它是您的主要内容的 ToC,则nav应该是该主要内容的子项。
  • 如果它是页面/站点导航,它不应该是section(或任何其他分段元素)的子元素,因此它属于body.
  • …</li>
于 2014-01-16T16:28:38.167 回答
1

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

编码:

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

....也许可以要求一个搁置标签而不是该部分。

于 2012-06-18T13:26:55.497 回答
-1

我不知道将此类标签放置在部分标签内部或外部的特殊规则,但我真的相信,语义标记的主要目的是 seo,这就是为什么你放置这个标签的地方,今天的谷歌和其他搜索引擎足够聪明找到它。

于 2012-04-26T14:03:55.650 回答