是否有理由在<nav>中使用<ul>?

tem*_*ame 4 html css html5

我知道新的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)

或者,否则,又何必包裹ulnav?重点是什么?只是为了让你的标记更"语义"?为什么不单独使用ul

Jac*_*ski 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>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,导航比简单复杂得多ul.


总结:里面nav可以有多个列表,多个链接,标题,......,以及其中一个ul.


看看有关css技巧的热门讨论.对于那个解决方案有很多赞成和不赞成......但毕竟解决方案现在是一个语义事实:).

  1. 资产净值对菜单:<nav>或<menu>(HTML5)
  2. 关于css技巧的精彩讨论:https://css-tricks.com/navigation-in-lists-to-be-or-not-to-be/
  3. 列表中的导航包装:https://css-tricks.com/wrapup-of-navigation-in-lists/