为什么我要用“ li”而不是“ div”?

我不确定为什么在列出项目时需要使用 ul-li vs 仅仅使用 div。我可以让它们看起来完全一样,那么创建无序列表和排列 div 的功能优势在哪里呢?

51927 次浏览

通过使用语义正确的标记,可以在文本中嵌入额外的信息。通过使用 ul/li,您可以向消费应用程序传递这样的信息: 信息是一个列表,而不仅仅是“某些东西”(谁知道是什么) ,它是任意元素中的某些文本。

为了语义正确。HTML 具有表达事物列表的能力,它可以帮助 Google 机器人、屏幕阅读器和所有不关心网站表现形式的用户更好地理解你的内容。

对于要放入的内容,应该使用适当的标记。这不仅意味着 ul/li 更适合列表。这也意味着您必须考虑列表的内容,并查看它是否是无序/有序或定义列表。

另一个参数是,当您禁用 css 时。浏览器将呈现它的默认样式,如果使用其他浏览设备,看起来会更好。它还增强了可访问性。

关于 ul li 的另一件事是; 您可以使用 ul 作为一个容器来帮助您设置 Style 类

<ul class="myHebe">
<li><a href="#">.net</a></li>
<li><a href="#">.net</a></li>
</ul>

当我使用 ul 时,我喜欢这个图案

.myHebe{} // container
.myHebe li {} // items
.myHebe li a {} // subitems

当然,这取决于我们想如何使用它,以及我们喜欢它的方式。我就喜欢这样

希望有用 谢谢

如果使用 div,lynx 将无法以可读的方式呈现页面。

我个人比较喜欢 Li 的语义。当查看源代码时,您会立即看到一个列表,其中包含了一些内容(如果它们是用 li 包装的)。Div 集合没有提供任何语义意义,列表的唯一语义通常是由类似“ listItem”的 css 类引入的。这显然指向了一个事实,一开始就应该使用 li。

如果您的表示逻辑中有一个循环,我总是倾向于使用 li 而不是 div。

< li > 表示列表中的一个项目,它让解析器(浏览器、搜索引擎、蜘蛛)知道您正在列出项目。您可以使用 DIV 而不是 LI,但是那些解析器永远不会知道这些条目已经被列出,而且 DIV 并不真正描述任何东西,除了它是一个块。

我不知道为什么我需要使用 ul-li vs 简单地使用 div 列出项目。我可以让两个 听着完全相同

在你的问题中有一个关键词: “看”。你也可以使他们的 类型相同的盲人使用盲文阅读器?你能用文本到语音合成器把它们变成盲人的 声音吗?你能使用定制的客户端 CSS 用户样式表使它们看起来与视障人士相同吗?

这个词“ look”是一个非常危险的词——当你用它来描述 HTML 时,所有的警报都应该在你的头脑中响起。HTML 是一种描述超媒体文档语义结构的语言。语义结构不是 一个“看”,它是一个抽象的概念。

即使你不关心所有这些语义上的花言巧语,也不关心盲人,考虑一下: Google,Yahoo,MSN 和 Co。没有眼睛,他们不“看”你渲染的 CSS。

使用 <li>(在适当的地方)可以减少你经常在网页中看到的 <div>标签汤,这对开发人员有很大的帮助。

不是说 <div>不好,而是每当一个标签被过度使用(就像 <div>经常做的那样) ,它就会稀释标签的语义,以至于完全没有用处。我最近从一个承包商那里学到了这一点,我们聘请他来帮助我们的 web 应用程序的 CSS/UI,它对 HTML 代码的可读性/可维护性的影响对我来说是非常明显的。

如果你所关心的只是让列表以最小的努力看起来特定的方式,那么这已经是一个显而易见的问题: <li><div> 还有少输入一个字符,它的结束标记在 HTML 中是可选的。

这还不包括其他人所说的语义学。

用于在原始浏览器或移动设备上正确呈现

直接回答你的问题: 功能上的优势在于,Div本身的意思很少,而 (法语)则明确表示“这是一个无序的项目列表”

术语“语义”指的是使用现有结构的内在含义来创建明确含义的方法。HTML 由标记组成,这些标记本身表示特定的内容。并且有既定的规则/指导方针/方法来使用它们,以便您发布的 HTML 文档能够传达您希望它表达的意思。

如果您在文档中列出了某些内容,那么添加一个有序列表(UL)或无序列表(OL)。另一方面,页面分割(DIV)元素用于创建特定的和单独的内容。

Div元素“分割”当你查看一个页面时,会看到一些特定的部分,比如内容主体、页脚、页眉、导航、菜单、表单等等。您可以使用 Div标记来创建这些划分。通常,页面部分与可视化布局相对应,因此使用显式的页面分割(DIV)来切割 CSS 中的布局是很自然的。这样,Div标记就变成了结构化的。

如果你滥用或过度使用 Div标签,它可能会造成意想不到的意义和代码膨胀。

为了混淆视听: Google 使用 H3Div来“划分”他们列出的搜索结果

因此,当你关闭所有样式(Firefox w/WebDeveloper 工具栏中的 Shift + Cmd/Crtl + S)时,Div应该会自动消失,并自然堆叠。您的裸 HTML 仍然应该呈现一个清晰的层次结构: 从上到下,最重要的内容优先,列表与项目的项目符号和数字。最好在顶部附近添加一个链接(对于非可视用户) ,这样可以直接跳到: 主要内容、重要表单或者主要标题(比如目录)。

最后,请记住您正在构建一个文档。没有所有的视觉效果,它仍然应该是一个令人信服的文档。

有很多关于使用 <li>或使用 <div>的讨论,但没有一个评论给出了这些标记内部内容的实例。我的感觉是,<ul><li>并不是真的那么重要,因为我不能告诉你最后一次我实际上读了一个网站,报纸或杂志上的东西的“清单”-在线或印刷品。

<div>的用途更加广泛。如果你列出一个蛋糕的成分,是的,这是一个清单。如果你列出了徒步旅行要打包的东西,是的,这就是一个清单。

但是,如果一个用户表单列出了一些随机的东西,而这些东西实际上并不是一个列表,也不是一系列的段落,也不是所有的“标题”,那该怎么办呢有些东西是日期,有些是复选框,有些是文本。如果你问我的话,我会告诉你。一个盲人会被误导,如果它被标记为 <ul><li>,他们听到“这是一个列表...”,当它只是一个大杂烩的东西,而不是真正的一个列表。

这取决于项目。我最近做了一个项目,使用列表设计了一个菜单。他们想要添加一系列的效果,比如滑动/褪色,同时也想让它可以在多个层次上折叠。

在这种情况下,DIV 更为合适。我能够为子 div 创建容器并应用 jQuery 来实现所需的效果。

即使您的项目还没有这些需求,考虑将来如何更改它也许是明智的..。

你的问题已经得到了回答,我想在这里补充一下我的意见。我当时正在做一个项目,我正在做后端逻辑,我的数据被聚合成一个页面模板,由我的设计师制作。他使用 ul 和 li 标签来表示页面上的各种列表,其中一些是小部件。数据来自 cms,用户可以通过 html 标签输入富文本。当用户开始在他们的内容中创建列表时,列表不再看起来像项目符号列表,而是把整个页面搞得一团糟。

经验教训: 如果你的内容可以包含 html 本身,不要使用带有通用 css 选择器的列表标记。