我知道新的HTML5 nav
元素用于创建导航菜单......显然......但是每当我看到有人使用它时,他们往往会在其中加入ul
,如下所示:
<nav>
<ul>
<li><a href=#>Item A</a></li>
<li><a href=#>Item B</a></li>
<li><a href=#>Item C</a></li>
</ul>
</nav>
这有必要吗?这样有优势吗?有没有理由不写:
<nav>
<a href=#>Item A</a>
<a href=#>Item B</a>
<a href=#>Item C</a>
</nav>
或者,或者,为什么还要费心包裹ul
中的nav
?重点是什么?只是为了让你的标记更“语义”?为什么不单独使用ul
?
答案 0 :(得分:5)
对于html5来说真的很难对这个语义解决方案进行大量讨论。主要的两点是:
导航实际上是某种无序列表。
但导航也可能更复杂(uls
内的标题uls
)。因此nav
元素无法导致ul
元素(正如<menu>
元素所做的那样)......
例如:
<nav>
<h3>Main navigation</h3>
<ul><li>...</li></ul>
<a href="registernow.php">Register</a>
<h4>Sub navigation</h4>
<ul><li>...</li></ul>
</nav>
在这种情况下,导航要比简单ul
复杂得多。
总结:在nav
内,可以有多个列表,多个链接,标题,...,以及单个ul
。
看看有关css技巧的热门讨论。对于那个解决方案有很多赞成和不赞成......但毕竟解决方案现在是一个语义事实:)。