列表是网页中最常用的一种数据排列方式。
在 HTML 中,列表共分为 3 种:有序列表、无序列表、定义列表。 可能你在自学过程中会遇到 目录列表dir、菜单列表menu,其实这两种列表在HTML5标准中已经被废除了,现在都是用无序列表 ul 来替代。
列表项之间有先后顺序之分。
列表项之间没有先后顺序之分。
是一组带有特殊含义的列表,一个列表项中包含 条件、列表两部分。
在有序列表中,各个列表项都是有顺序的。 有序列表从
<ol>
开始,到</ol>
结束。 有序列表一般采用数字或字母作为顺序,默认采用数字顺序。
<ol>
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
...
</ol>
<ol>
和</ol>
标志着有序列表的开始和结束。
<li>
和</li>
标签表示这是一个列表项。 一个有序列表可以包含多个列表项。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ol> <!--有序列表的开始-->
<li>贤思齊</li> <!--列表项-->
<li>君初见</li>
<li>王小淘</li>
<li>越努力,越幸运</li>
</ol> <!--有序列表的结束-->
</body>
</html>
有序列表示例.png
我们知道,有序列表默认采用数字顺序,那么可不可以换成别的表现形式呢? 当然可以啦!!!!! 在
HTML
中,我们可以使用type
属性来改变列表项符号。
<ol type=" 属性值 ">
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
...
</ol>
属性值 | 列表项符号 |
---|---|
1 | 阿拉伯数字:1、2、3、... |
a | 小写英文字母:a、b、c、... |
A | 大写英文字母:A、B、C、... |
i | 小写罗马数字: |
l (这是大写的 i 呦!!!) | 大写罗马数字:Ⅰ、Ⅱ、Ⅲ、... |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ol type="I"> <!--有序列表的开始,列表项符号为大写罗马字母-->
<li>贤思齊</li> <!--列表项-->
<li>君初见</li>
<li>王小淘</li>
<li>越努力,越幸运</li>
</ol> <!--有序列表的结束-->
</body>
</html>
有序列表type属性.png
对于有序列表的列表项符号,在之后的
CSS
学习中,我们会舍弃type
属性,而是用list-style-type
属性来替代。
无序列表的列表项是没有顺序的。 默认情况下,无序列表的列表项符号为◉,可以通过
type
属性来改变。
<ul>
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
...
</ul>
理解标签的语义有利于记忆。
<ul>
和</ul>
标志着无序列表的开始和结束。
<li>
和</li>
标签表示这是一个列表项。 一个有序列表可以包含多个列表项。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ul> <!--无序列表的开始-->
<li>贤思齊</li> <!--列表项-->
<li>君初见</li>
<li>王小淘</li>
<li>越努力,越幸运</li>
</ul> <!--无序列表的结束-->
</body>
</html>
无序列表示例.png
<ul type=" 属性值 ">
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
...
</ul>
属性值 | 列表项符号 |
---|---|
disc | 实心圆(默认值) |
circle | 空心圆 |
square | 正方形 |
学习
CSS
后会被line-style-type
取代。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ul type="square"> <!--无序列表的开始,列表项符号为正方形-->
<li>贤思齊</li> <!--列表项-->
<li>君初见</li>
<li>王小淘</li>
<li>越努力,越幸运</li>
</ul> <!--无序列表的结束-->
</body>
</html>
无序列表type属性.png
真正的前端开发中,无序列表比有序列表更为实用。 几乎我们使用的都是无序列表,而有序列表基本用不到。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ul>
<div>华夏</div>
<li>人生若只如初见</li>
<li>当时只道是寻常</li>
<li>一蓑烟雨任平生</li>
</ul>
</body>
</html>
# 上述代码是错误的,因为ul的子元素只能是li,不能是其它,但在这里却有div。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<div>华夏</div>
<ul>
<li>人生若只如初见</li>
<li>当时只道是寻常</li>
<li>一蓑烟雨任平生</li>
</ul>
</body>
</html>
# 这样写才是正确的。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<ul>
华夏
<li>人生若只如初见</li>
<li>当时只道是寻常</li>
<li>一蓑烟雨任平生</li>
</ul>
</body>
</html>
# 这样写是错误的,文本不能直接放在ul元素内。
在
HTML
中,定义列表由 名词、描述 两部分组成。
<dl>
<dt>名词</dt>
<dd>描述</dd>
……
</dl>
dl
,即 definition list,定义列表。dt
,即 definition term,定义名词。dd
,即 definition description,定义描述。
<dl>
和</dl>
标志着定义列表的开始和结束。
dt
标签用于添加要解释的名词。
dd
标签用于添加该名词的具体解释。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> <!--必须放在title标签及其它meta标签前-->
</head>
<body>
<dl> <!--定义列表的开始-->
<dt>人生若只如初见</dt> <!--名词-->
<dd>一切还是停留在初次见面的时候为好。</dd> <!--名词的解释-->
<dt>当时只道是寻常</dt>
<dd>昔日平常往事,已不能如愿以偿。</dd>
<dt>一蓑烟雨任平生</dt>
<dd>一身蓑衣任凭风吹雨打,照样过我的一生。</dd>
</dl> <!--定义列表的结束-->
</body>
</html>
定义列表示例.png
在实际开发中,定义列表虽然用的少,但是在某些高级效果(如:自定义表单)中也会用到。
到现在为止,我们学习了很多标签,但是由于不熟悉标签的语义化,有时我们可能会用别的标签代替另一个标签,从而实现相同的效果,但这是一种错误的思想。
很多人觉得HTML简单,是的,HTML确实简单,学完一遍就觉得自己都会了,但其实他们连 HTML的精髓都没有搞懂,这是HTML学习中的一个误区。
你可以用
div
来代替p
,也可以用p
来代替h1~h6
,但这却违背了 HTML 语言的初衷。 HTML 的精髓就在于标签的语义。 在 HTML 中,大部分标签都有它自身的语义。比如说:
div 和 span 是无语义的标签,应优先使用其它有语义的标签。
在日后工作,代码往往成千上万行,如果全部用 div 和 span 来实现,将来在代码维护上会非常麻烦。
良好的语义,在搜索中的权重会较大,网络蜘蛛(如:百度、谷歌)会优先检索到。 语义化会在稍后的文章里详细介绍。