[英]Correct semantic html5 tag for single top level nav and sub links
我具有以下導航結構:
Models
Model 1
Model 2
Model 3
Model 4
我想使用nav標簽,因為這是網站上的主要導航
我也無法決定應在哪個標簽中放置“模型”。它是否是導航標簽中的標題-我不確定這是否正確?
因此,到目前為止,我有以下內容,但對此不滿意-特別是標題部分:
<nav>
<h1>Models</h1>
<ol>
<li><a href="#">Model 1</a>
<li><a href="#">Model 2</a>
<li><a href="#">Model 3</a>
<li><a href="#">Model 4</a>
<li><a href="#">Model 5</a>
</ol>
</nav>
如果模型本身是導航的一部分,則應在其中嵌套<ul>
列表。
<nav>
<ul>
<li>
Models
<ul>
<li><a href="”#”">Model 1</a></li>
<li><a href="”#”">Model 2</a></li>
<li><a href="”#”">Model 3</a></li>
<li><a href="”#”">Model 4</a></li>
<li><a href="”#”">Model 5</a></li>
</ul>
</li>
<li>
Products
<ul>
<li><a href="”#”">Product 1</a></li>
<li><a href="”#”">Product 2</a></li>
<li><a href="”#”">Product 3</a></li>
<li><a href="”#”">Product 4</a></li>
<li><a href="”#”">Product 5</a></li>
</ul>
</li>
</ul>
</nav>
您的標記是正確的標記! 由於“模型”是列表的標題,因此這是<h1>
元素的正確位置。 我唯一要更改的是將<ol>
更改為<ul>
。 您可以在底部的本文中閱讀有關菜單的更多信息。 http://diveintohtml5.info/semantics.html
<nav>
<h1>Models</h1>
<ul>
<li><a href="#">Model 1</a>
<li><a href="#">Model 2</a>
<li><a href="#">Model 3</a>
<li><a href="#">Model 4</a>
<li><a href="#">Model 5</a>
</ul>
</nav>
談到語義,您將h1
作為主要標題應該位於導航之外,或者將其更改為h2
或p
,因為主要標題不是導航的一部分。
關於導航,應該是這樣的:
<header>
<h1>title</h1>
<nav>
<h2>Models</h2>
<ul role="navigation">
<li><a href="#">Model 1</a></li>
<li><a href="#">Model 2</a></li>
<li><a href="#">Model 3</a></li>
<li><a href="#">Model 4</a></li>
<li><a href="#">Model 5</a></li>
</ul>
</nav>
</header>
不要忘記aria角色來指示瀏覽器是什么。 希望你覺得它有用。
nav
是一個剖分元素 。 如果不為sectioning元素提供標題,則大綱算法將創建隱式/未定義的標題。
因此,如果“模型”正確地描述了這些導航鏈接(似乎是這種情況),則最好將其用作標題。 您可以使用h1
或相應的航向等級h2
- h6
(取決於nav
輪廓線的放置位置)。
對鏈接本身使用列表也很好。 但是,通常您希望在此處使用ul
而不是ol
。 僅在鏈接的順序有意義且訪問者應按該順序訪問頁面時才使用ol
。 如果僅按字母順序對它們進行排序,則不符合ol
。
所以我會去:
<nav>
<h1>Models</h1>
<ul>
<li><a href="#">Model 1</a>
<li><a href="#">Model 2</a>
<li><a href="#">Model 3</a>
<li><a href="#">Model 4</a>
<li><a href="#">Model 5</a>
</ul>
</nav>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.