我知道新的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>
Run Code Online (Sandbox Code Playgroud)
这有必要吗?这样有优势吗?有没有理由不写:
<nav>
<a href=#>Item A</a>
<a href=#>Item B</a>
<a href=#>Item C</a>
</nav>
Run Code Online (Sandbox Code Playgroud)
或者,否则,又何必包裹ul在nav?重点是什么?只是为了让你的标记更"语义"?为什么不单独使用ul?
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>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,导航比简单复杂得多ul.
总结:里面nav可以有多个列表,多个链接,标题,......,以及其中一个ul.
看看有关css技巧的热门讨论.对于那个解决方案有很多赞成和不赞成......但毕竟解决方案现在是一个语义事实:).