![剑指JavaWeb:技术详解与应用实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/457/51089457/b_51089457.jpg)
2.3.7 列表
列表分为有序列表、无序列表和自定义列表三种,其中,有序列表就是按照字母或数字等顺序排列的列表项目。
在HTML中,使用<ol>标签来编写一个带有编号的列表。需要注意的是,<ol>标签只是定义了一个有序列表,列表中的每项内容需要使用<li>标签来表示。
无序列表与有序列表的表现形式相似,只不过无序列表是一个没有序号的列表。<ul>标签只是定义了一个无序列表,列表中的每项内容同样需要使用<li>标签来表示。
如图2-28所示,该图为我们常见的试卷截图,共有4道题,这就是有序列表的一种形式。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_1.jpg?sign=1739671180-ScfwMeqBoDXk9LHukcNwxIHPkFYLJBRe-0-22cc0edd14ddb25a5e31e107646d7bfa)
图2-28 有序列表
下面使用<ol>标签和<li>标签实现这个有序列表。具体代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_2.jpg?sign=1739671180-sEbco4ihjHZKnTgpdhkREGpczaEYkFVn-0-56ac2bc6b8f5dd880333f2d79f024a57)
另外,<li>标签的结束标签也可以省略,页面效果不会改变。
有序列表的type属性用于设置列表的编号类型,取值有5种,分别是1(数字)、i(小写罗马字母)、I(大写罗马字母)、a(小写字母)、A(大写字母)。其默认值为1,有序列表的编号按照选择的不同类型依次顺延,修改上述代码中<ol>标签的type属性值为i,示例代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_3.jpg?sign=1739671180-Ki6pyPDpMwMJ28bd5E6YLsdyUAEU9MA0-0-62022784ce495e0baebab90c9fb025e4)
运行代码查看页面效果,修改type属性值,如图2-29所示,编号变成了小写罗马字母。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_4.jpg?sign=1739671180-qryZM186YBxxp1KzEWnMG0qCdHcMQsxX-0-5ed467b3f68b28c31b34fd1233841654)
图2-29 修改type属性值
无序列表也会按照<li>标签的顺序显示,只是不显示序列号,如图2-30所示。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_5.jpg?sign=1739671180-vXf2DoRCKONjwzwcKonDbiJhOeHih7jF-0-e9999309c537e21d790b46df466fb20e)
图2-30 无序列表
下面使用<ul>标签和<li>标签实现这个无序列表。具体代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_32_6.jpg?sign=1739671180-FIiFEGjpMBKBeTFY1bMVNRT5OExCEp6b-0-34f668e736fb338c68a544d45aa3cbdf)
无序列表的type 属性有4 种取值,分别是disc(实心圆)、circle(空心圆)、square(实心正方形)、none(取消前缀)。其默认值为disc,分别演示剩余的三种情况,如图2-31、图2-32和图2-33所示。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_33_1.jpg?sign=1739671180-OrVOES5R5u9xn22xvRsV8wmMyya2MSbC-0-15ead9dbc9686ae1e6566644e14091cd)
图2-31 type属性值为circle
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_33_2.jpg?sign=1739671180-VbnA5BZBN7rc6kcIuz15QocXmW8JVx3F-0-6e0612ecd039c42944f076aae849de00)
图2-32 type属性值为square
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_33_3.jpg?sign=1739671180-9f3KZ6R6roLGEKtQFnTjKg4Rj1VHD81S-0-7dc549fded21542bffd35abc010149a6)
图2-33 type属性值为none
不管是有序列表还是无序列表,其中的<li>标签都可以嵌套有序、无序列表或其他标签。比如,<li>标签中可以嵌套超链接或者另一个无序列表,示例代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_33_4.jpg?sign=1739671180-b7wv2auurDauEYKRO0sAR0YnGDoW53Vs-0-a6e2c44667b9868fd3ab50029c0a5832)
运行代码查看效果,列表嵌套如图2-34所示。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_33_5.jpg?sign=1739671180-glH6wGEyUH6V22Ld1SljwfoICsPGpDvU-0-747c6b3b160b8c4f1ecd245c74b359c6)
图2-34 列表嵌套
代码中使用<ul>标签定义了无序列表,在其内部使用两个<li>标签。<li>标签内分别嵌套了<a>标签和新的<ul>标签,从而展示了2级列表的效果。
这里,读者可能会对什么时候使用有序列表或者无序列表产生疑惑。实际上如果改变列表中<li>标签的顺序,会使得这个列表对应的意义发生改变,那么应该使用<ol>标签;如果更改之后意义没有发生改变,那么使用<ul>标签更为合适。
另外,如果需要定义列表包含着一系列标题或者说明的组合,还可以使用自定义列表来实现。自定义列表需要使用三个标签,分别是<dl>标签、<dt>标签和<dd>标签,具体如下。
● <dl>标签:用来定义一个自定义列表。
● <dt>标签:用来定义自定义列表中的标题。
● <dd>标签:用来定义自定义列表中的说明。
下面通过一个案例来演示这三种标签的使用,示例代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_34_1.jpg?sign=1739671180-Oigq3g4e8D26aRbwHtHUFxYVKiG3cuQO-0-9ad557a490d014148dc6024042c35276)
从代码中可以看出,<dl>标签相当于有序列表的<ol>标签,用来定义列表;<dt>标签用来定义标题“苹果”;<dd>标签用来定义说明“蔷薇科苹果属植物”和“苹果的功效:益胃……”。运行代码查看效果,如图2-35所示。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_34_2.jpg?sign=1739671180-jLeEnx3nQjJ8NExLUXt3lGMSf9duqYcG-0-fe045f0bdf0950dc1b0b30fb18022b74)
图2-35 自定义列表
其实每个自定义列表中可以有一个或多个<dt>标签,以及一个或多个<dd>标签。示例代码如下。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_34_3.jpg?sign=1739671180-BtlXcNPxTScGVR44IWHo00AtlRxwzoiC-0-4a9523dbc6a746fce10fceefafbda935)
代码中使用<dt>标签定义了两个标题,苹果和香蕉。并对应配以说明,运行代码查看效果,如图2-36所示。
![](https://epubservercos.yuewen.com/B84C2D/30120995704540106/epubprivate/OEBPS/Images/48021_34_4.jpg?sign=1739671180-cfu3DOMv929nLnMRQ14XNeQ888xic4XK-0-3a51fbcc5bc7e425bba30004cf947550)
图2-36 自定义列表中包含多个<dl>标签和<dd>标签