【发布时间】:2010-04-20 19:38:20
【问题描述】:
我已经开发了一段时间,并且经常使用菜单选项卡开发网站。
而且我不明白为什么这么多 Web 开发人员喜欢使用列表 等,而不仅仅是使用普通的旧 div。
我可以在 div 中制作简单的菜单,并且可以在每个浏览器中完美运行。对于列表,我通常会尝试以一种或另一种方式破解它以使其正常工作。
所以我的问题很简单:为什么我应该使用列表而不是 div 来创建我的菜单?
【问题讨论】:
我已经开发了一段时间,并且经常使用菜单选项卡开发网站。
而且我不明白为什么这么多 Web 开发人员喜欢使用列表 等,而不仅仅是使用普通的旧 div。
我可以在 div 中制作简单的菜单,并且可以在每个浏览器中完美运行。对于列表,我通常会尝试以一种或另一种方式破解它以使其正常工作。
所以我的问题很简单:为什么我应该使用列表而不是 div 来创建我的菜单?
【问题讨论】:
简单:语义 HTML。导航本质上是 HTML 中的链接列表,因此您的标记应该反映这一点。
它有几个好处,搜索引擎蜘蛛可以智能地找出什么是内容列表(即你的导航),而谷歌专门用它做了一些聪明的事情。
此外,使用纯文本浏览器或屏幕阅读器的用户可以立即轻松识别导航元素。
此外,这是一种很好的做法。
【讨论】:
如果您以菜单为例,那么菜单本质上可以是分层的,而 HTML 列表是专门为标记项目的分层列表而设计的。它是该类型项目的语义正确标记,任何类型的用户代理都可以轻松理解 CSS 是否启用(想想屏幕阅读器、网络机器人等)
您绝对没有理由发现将嵌套列表设置为“平面” div 序列更难。事实上,恰恰相反,因为您的 CSS 语法旨在轻松区分嵌套项。
【讨论】:
列表不需要黑客攻击,因为仅设置 display: block 和清除一些其他样式会产生与 div 相同的行为,但优点是搜索引擎、Lynx 等文本浏览器等(所有 UA 都看不到你的 CSS)了解元素是什么。它还有助于混搭,例如 stumble、feed 聚合器和生成器,以及所有其他从页面获取数据并尝试将其组装成有用的东西的程序。
基本上,div 是多余的(如果您不相信我,请查看 http://camendesign.com/;没有 div、类或跨度,尽管在生产网站上使用了太多 HTML5)。
【讨论】: