我应该在<nav> s中使用<ul>和<li>吗?
标题几乎可以解释它。
现在我们有一个专用的<nav>
标签,
这是:
<nav> <ul> <li><a href="#foo">foo</a></li> <li><a href="#bar">bar</a></li> <li><a href="#baz">baz</a></li> </ul> </nav>
比以下更好吗?
<nav> <a href="#foo">foo</a> <a href="#bar">bar</a> <a href="#baz">baz</a> </nav>
我的意思是,假设我不需要一个额外的DOM级别的一些CSS定位/填充,什么是首选的方式,为什么?
导航元素和列表提供了不同的语义信息:
-
导航元素通信,我们正在处理一个主要的导航块
-
该列表通知该导航块内的链接形成一个项目列表
在http://w3c.github.io/html/sections.html#the-nav-element你可以看到一个导航元素也可以包含散文。;
所以是的,在nav元素中有一个列表确实增加了含义。
在这一点上,我会保留<ul><li>
元素,因为并非所有的浏览器都支持HTML5标签。
例如,我遇到了一个使用<header>
标签的问题 – Chrome和FF的工作就像一个魅力,但歌剧borked。
在所有浏览器完全支持HTML之前,我会坚持使用它,但是依靠旧版本来实现向后兼容。
真的取决于你。 如果您通常使用无序列表来标记导航菜单,那么我会在<nav>元素中继续这样做。 例如,<nav>元素的要点在于识别网站导航到计算机阅读器,所以无论您使用列表还是仅仅链接都不重要。
不,他们是相同的。 请记住,HTML 5向后兼容HTML 4列表,所以您可以随意使用它们。 第二个版本的代码更less。
如果您担心浏览器的向后兼容性,请确保包含此垫片以提供<nav>
和<article>
等标签的function。
如果我们正在“按书”说话,那么就不要; 您不需要使用列表来标记导航。 他们提供的唯一真正的好处是在造型时提供更好的灵活性。
我会保留<ul><li>
标签,因为新的标签( <nav>
, <section>
, <article>
等)只是更多的<div>
的语义版本。
出于同样的原因,你不会只在<div>
加载链接,它们也应该在<nav>
标签内部结构化。
对我来说,无序列表是额外的标记,并不是真正需要的。 当我看一个HTML文档时,我希望它尽可能清晰易读。 观众已经清楚,如果使用正确的缩进,就会显示一个列表。 因此,向这些标签添加UL是不必要的,并且使读取文档变得更加困难。
尽pipe您可能会获得一些灵活性,但我相信最好不要使用非语义的ul类来夸大标记,并一举devise出一个元素。 而且你没有任何借口:使用:之前和之后:伪select器。
编辑 :我已经意识到,一些ARIA屏幕阅读器对待列表不同于简单的锚标签。 如果您的网站面向残疾人士,我可能会考虑使用基于列表的方法。
关于这个确切的问题,在CSS技巧上有一个非常详细的post。 这显然是一个激烈的争论问题。 该职位有200多条评论。
在列表中导航:是或不是(CSS技巧,2013年1月)