什么时候在HTML中使用UL或OL?


69

似乎可以互换?


3
他们确实应该选择不同的名称,因为当您初次了解此名称时会感到困惑,因为视觉列表显然将按特定顺序显示。他们应该为其命名,如<bl>(对于项目符号列表)和<nl>(对于编号列表)。
still_dreaming_1 2015年

Answers:


90

UL的意思是“无序列表”。OL的意思是“有序列表”。

UL为您提供了要点。OL为您获取数字。

绝对不可互换。


18
好吧,从技术上讲,您可以更改列表以CSS(列表样式)的显示方式。但是是的,从语义上讲,UL应该用于无序数据,而OL应该用于有序数据。
jimr

12
当然,默认显示是一个考虑因素!也许,它不如标签的语义重要,但是谁愿意花时间改变OL来获得要点,并在您找出标准标签的奇异显示规则后强迫每个开发人员呢?行人失败。
乔尔·穆勒

5
@本·布兰克:不是。这在语义上很重要。但是,如果您对无序数据使用有序列表,然后使用CSS使无序列表像无序列表一样工作,那么您将很难进行。那是我的意思。即使CSS可以修改显示内容,语义也很重要。语义是用于自动分析的语义,例如,不是CSS。您认为Google会解析CSS以确定您的有序列表实际上是否是无序列表?好的,也许会,但是那是Google。:)
Randolpho

2
@Randolpho —我正反对使用“无序数据的有序列表”。我完全不同意你的回答。唯一的问题是,它使数字/项目符号听起来像是最重要的部分。也许我离开的评论是不明确(如果有的话,我道歉),但我想在争辩青睐语义的,在这里。:-)
Ben Blank

2
@Ben Blank:我唯一的反对意见是默认显示应与您的选择无关。它不应该是主要考虑因素,但要说默认显示甚至都没有进入图片中,这意味着您打算以某种可能会使以后的开发人员感到困惑的方式违反默认显示。
乔尔·穆勒

59

用数学术语(嘿,为什么不呢?),an<ol>代表一个序列,而<ul>代表一个集合。重新排列列表中的项目会更改列表的含义。不会将它们重新排列在无序列表中。

对于要使用的列表类型,这是一个很好的经验法则。如果更改项目的顺序使列表不正确,则要使用<ol>。如果顺序无关紧要,请使用<ul>


7
Sequence vs set是一个有趣的隐喻,除了数学的set不允许重复,而html的无序列表允许重复。</ nitpick>
jtmoulia

我认为您的意思是“但是”而不是“除外”。“数学集不允许html无序列表重复的事实”这一事实并不能改变“序列与集是一个有趣的隐喻”的事实。</ grammar-nitpick>
Chicken Suop

50

<ol>该数据的顺序是重要的,将被显示的(默认),同时用<ul>,顺序并不重要。例:

<p>Tomorrow I will</p>
<ol>
 <li>Wake up</li>
 <li>Have breakfast</li>
 <li>Go to sleep</li>
</ol>
<p>During breakfast, I will eat</p>
<ul>
 <li>Butter</li>
 <li>Eggs</li>
 <li>Bacon</li>
</ul>

26

一个是有序列表(OL),它用于具有已定义和不同顺序的事物。它们为什么要组织起来是有原因的。

另一个(UL)是无序列表,它只是没有指定顺序的事物的集合。他们的组织很琐碎。


9
是的 其他人没有提到的是数字或项目符号只是默认格式。语义是最主要的。
Rich Bradshaw

1
顺便说一句,如何通过CSS隐藏UL的子弹?
omg

5
从语义的角度来看,这个论点有一个破绽。尽管无序列表代表一个集合,而不是一个序列,但它们隐含一个“顺序”-列表项出现的顺序。它们并不是完全没有顺序的,并且开发人员-可能是在潜意识中-在输入时对列表项进行排序。
scottburton10年

4
还行,12345评论给予好评上面list-style: none;是,如果我见过一个社区一个优秀的典范。
Marc

22

哈哈,答案这么多!

HTML首次问世时,有OLUL,正如所有其他发布者所说的那样,它们表示有序列表和无序列表。

区别很容易。OL显示...旁边有一个数字。或罗马数字或字母!您甚至可以控制它是否使用大写符号或小写!凉!

UL给您发了子弹。3种子弹,甚至-圆盘(空心圆圈),正方形(实心正方形),圆圈(实心圆圈)。

没有CSS。除了这些属性之外,实际上还没有一种自定义列表格式(以及边距和缩进以及其他所有内容)的方法。因此,这种区别很重要。

如今,所有的CSS。实际上,w3人们希望您使用样式,而不是您以前使用的html“ type”属性。因此,使用UL vs OL并不重要,如果您是其中的新手CSS用户之一。

CSS使您可以更改项目符号类型,或选择使用图像,或更改边距/样式/缩进,甚至根本不显示项目符号。

再次编辑:这个答案并不是真的要解决UL vs OL的语义优点。但是从技术上(您知道,在位和字节处),上面概述了行为上的差异。


8
正确的做法是加以区分,因为您不知道用户将如何获取信息。也许他的浏览器不支持CSS,或者他正在使用屏幕阅读器,等等。从语义上讲,它们是不相同的,因此您必须区分它们。
basaundi

14

OL:

  1. 清单项目1
  2. 清单项目2

UL:

  • 清单项目1
  • 清单项目2

OL是有序列表,UL是无序列表


对于OL,可以隐藏该数字吗?
omg,2009年

如其他文章所述,您可以使用css list-style:none; 隐藏它。也可以使用list-style-type弄乱外观。如果您要拒绝投票,请说明原因。
Zach

知道了,如果我想在每个UL元素之间设置边距怎么办?
omg

在一个简单的HTML页面中,css,li标签上的margin-bottom可以做到这一点
Zach 2009年

顺便说一句,在大多数浏览器中,列表的左边距实际上是左边的填充。margin:0; padding:0;如果要删除它,最好设置。
DisgruntledGoat

8

当问题问“何时使用它们”时,我认为适当地提供以下示例:通常,当我需要一系列步骤时,我决定使用OL,而在我希望提供选择时,我决定使用UL:

订购清单

这里的步骤对于业务案例至关重要,我们必须按此顺序执行步骤,因此使用了有序列表。

在电子商务的结帐阶段,这些步骤将按此顺序进行。

<ol>
    <li>shipping</li>
    <li>billing</li>
    <li>summary</li>
    <li>confirmation</li>
</ol>

无序列表

用户可以决定他们选择与这些选择进行交互的顺序

<ul>
    <li>Contact Us</li>
    <li>Newsletter Signup</li>
    <li>Terms</li>
    <li>Log out</li>
</ul>

7

我认为这是一个语义问题,因为CSS可以更改编号/项目符号点。

有序列表应该是诸如说明之类的东西,或者是任何顺序信息。

无序列表应该是其他所有内容。


3

当您列出需要按特定顺序完成的步骤时,请使用OL。当您按照重要性的特定顺序列出项目时,请使用UL。


1

ul表示未排序的列表。它适用于列表,列表项的顺序无关紧要。

ol表示有序列表。它用于编号的列表或以某种方式显示它们具有特定顺序的列表。

默认情况下,ul会为您提供项目符号指向的列表和ol编号列表,尽管可以在CSS中进行编辑。


1

在某些情况下(屏幕阅读器专门用于有特殊需要的人),由于视觉设计的原因,您可能想要订购列表,但没有与之关联的编号。例如 当您在页面上说出要填写表格的说明并且希望屏幕阅读器利用说明中的订购项目时,这将很有用。出于所有视觉目的,可以通过CSS使它们看起来完全相同。是(非视觉的,但对屏幕阅读器有所帮助)语义,它们有时是不同的。


0

ol =表示有序列表。当您要列出事物并为其编号时使用。ul =表示无序列表。当您要列出但不编号时使用。

我认为OL应该称为NL =编号列表。为什么?因为UL也可以有订单但不能编号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.