我为什么要用'li'代替'div'?

我不知道为什么我需要使用ul-li vs列出项目时只使用div。 我可以使两个看起来完全一样,那么创build一个无序列表的function优势vs排队div?

为了语义的正确性。 HTML能够expression事物的列表,并且它可以帮助Google机器人,屏幕阅读器以及所有不关心网站展示的用户更好地理解您的内容。

林不知道为什么我需要使用ul-li vs列出项目时简单地使用div。 我可以让两个看起来完全一样

在你的问题中有关键词:“看”。 你也可以让他们使用盲文阅读器的盲人types相同吗? 你可以让他们听起来一样的盲人使用文本到语音合成器? 你仍然可以让他们使用自定义的客户端CSS用户样式表看起来是一样的视觉受损的人吗?

这个词,“看”,是一个非常危险的词 – 当你使用这个关于HTML,所有的报警应该在你的脑海里。 HTML是用于描述超媒体文档的语义结构的语言。 语义结构不具有 “外观”,这是一个抽象的概念。

即使你不关心所有这些语义焦点,也不关心盲人,可以考虑一下:谷歌,雅虎,MSN和公司没有眼睛,他们不“看”你的CSS 。

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

直接回答你的问题:function优势是divs自己的意思很小,而ul lis明确的意思是“这是一个无序/有序的项目列表”。

术语“语义”指的是你使用现有结构的内在意义来创造明确的意义。 HTML由标签组成,这些标签本身意味着某些东西。 还有一些已经build立的规则/指南/方法来使用它们,以便您发布的HTML文档能够传达您想要的内容。

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

div元素“分开”。 当你看一个页面时,有一些特定的部分,如内容主体,页脚,页眉,导航,菜单,表单等。你可以使用div标签来创build这些分区。 通常,页面部分与可视化布局相对应,因此使用显式页面划分(DIV)来切断CSS中的布局是非常合适的。 这样div标签变成结构。

如果您滥用或过度使用div标签,可能会产生意想不到的含义和代码膨胀。

混淆事项:谷歌使用h3div来“划分”他们列出的search结果。 ul> li> h3 + div

所以,当你closures所有样式(在Firefox / WebDeveloper工具栏中的Shift + Cmd / Crtl + S)时, div应该消失,自然地堆叠。 您的裸体HTML仍然应该呈现一个清晰的层次结构:从上到下,最重要的内容,并列出列出项目的项目符号和数字。 在顶部附近添加一个链接(对于非可视化用户)是一个好主意,允许您跳至:主要内容,重要表单或主标题(如目录)。

最后,请记住,您正在构build一个文档。 没有所有的视觉效果,它应该仍然是一个有说服力的文件。

您应该为要放入的内容使用适当的标签。 这不仅意味着ul / li更适合列表。 这也意味着你必须考虑你的列表的内容,看看它是一个无序/有序或定义列表。

另一个说法是,当你禁用CSS。 浏览器将呈现它的默认样式,这使得更好地查看是否使用替代浏览设备。 它也提高了可访问性。

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

我个人喜欢li的语义。 当你查看源代码时,你会立即看到你有一个列表,如果它们是由一个li包装的。 一个div集合没有提供语义,通常这个列表的唯一语义是由像“listItem”这样的css类引入的。 这显然是指李应该首先被使用的事实。

如果你在演示逻辑中有一个循环,我总是喜欢一个div。

<li>表示列表中的一个项目,它允许parsing器(浏览器,search引擎,蜘蛛)知道你正在列出项目。 您可以使用DIV而不是LI,但这些parsing器永远不会知道这些项目正在被列出,DIV除了它是一个块之外没有任何真正的描述。

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

<div>更多才多艺。 如果你列出了一个蛋糕的成分,是的,这是一个列表。 如果你列出的东西打包远足旅行,是的,这是一个列表。

但是,举个例子,用户forms列出了一些不是真正的列表的随机事物,也不是一系列的段落,也不是所有的“标题”。 有些东西是date,有些是checkbox,有些是文本。 把它分开,如果你问我。 如果一个盲人被标记为<ul><li> ,他们会听到“这是一个…的列表”,当它只是一个东西的大杂烩而不是一个列表。

使用<li> (在适当的情况下)可以减less您经常在网页中看到的<div>标签汤,这可以帮助开发者大量使用。

不是<div>是坏的,但是每当一个标签被滥用(就像<div>常常是),就会把标签的语义含义稀释到完全无用的地步。 我最近从一个我们雇佣的承包商那里了解到,这个承包商是为了帮助我们的networking应用程序的CSS / UI,它对HTML代码的可读性/可维护性的差异对我来说是非常明显的。

如果你关心的是让列表以最小的努力寻找某种特定的方式,那么这已经是一件不费吹灰之力了: <li>types比<div>less一个字符其结束标记在HTML中是可选的。

除了其他人对于语义学的看法。

在原始浏览器或移动设备上正确渲染

这取决于项目。 我最近做了一个项目,有一个菜单devise使用列表。 他们想要添加一些效果,如滑动/褪色,也想要使其可以折叠多层次。

在这种情况下,DIV更适合。 我能够创build子div的容器和应用jQuery来达到预期的效果。

即使您的项目还没有这些要求,可能会慎重考虑您将来如何改变它。

关于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 

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

希望有助于谢谢

你的问题已经回答了,我想在这里添加我的两分钱。 我正在开发一个项目,我正在做后端逻辑,我的数据被汇集到由我的devise师制作的页面模板中。 他用ul和li标签来表示页面上的每一种列表,其中一些是小部件。 数据来自cms,用户可以通过html标签input富文本。 当用户开始在他们的内容中创build列表时,这些列表不再像看上去一样,而是把整个页面搞乱了。

经验教训:如果您的内容本身可以包含h​​tml,请不要使用带有通用CSSselect器的列表标签。