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

时间:2015-02-26 20:30:59

标签: 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>

这有必要吗?这样有优势吗?有没有理由不写:

     <nav>
        <a href=#>Item A</a>
        <a href=#>Item B</a>
        <a href=#>Item C</a>
     </nav>

或者,或者,为什么还要费心包裹ul中的nav?重点是什么?只是为了让你的标记更“语义”?为什么不单独使用ul

1 个答案:

答案 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技巧的热门讨论。对于那个解决方案有很多赞成和不赞成......但毕竟解决方案现在是一个语义事实:)。

  1. NAV vs MENU:<nav> or <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/