2012-04-26 113 views
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> 
+0

的@ * * @是ASP.NET MVC註釋標記。 – dotnetN00b 2012-04-26 14:07:30

回答

-1

我不知道特殊的規則,這樣的標籤定位內部或外部節標記,但我真的相信,語義標記的主要目的是搜索引擎優化,這就是爲什麼無論你把這個標記今天的搜索引擎谷歌和其他人很聰明,可以找到它。

1

如果它是一個主要的導航實體 - 那麼nav標籤就是要使用的東西。我的小見解是,如果你需要將導航元素放在段標籤中,那麼它不適合導航。不是主要的導航。

代碼:

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

....或許可以稱之爲一個預留標籤,而不是部分。

+0

歡迎來到Stack Overflow。您可以使用看起來像{}的按鈕在答案中正確地格式化代碼 - 儘管現在我已經爲您編輯了它。 – Flexo 2012-06-18 13:35:56

1

你需要明白兩兩件事:

  • 每個切片內容元素(sectionarticleasidenav)創建的文檔大綱條目(玩弄的大綱,例如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將是邊欄(!)的導航。

如果這適用於您的內容,您的示例是好的。但是,如果側邊欄還包含其他內容,它可能只會有意義,否則就沒有理由首先進行導航。如果您找不到父母section的標題(實際上是否使用該標題),則可能會出現問題。

沒有看到你的實際內容,沒有人可以回答你的結構是否正確。什麼是側欄中的nav用於?

  • 如果它是你的主要內容通過TOC中,nav應該是主要內容的一個孩子。
  • 如果是頁面/網站導航,它不應該是section(或任何其他分段元素)的子項,因此它屬於body
  • ...
相關問題