HTML 提供了三种主要的列表标签,分别用于不同场景:
- 无序列表
<ul>:用于展示无顺序关系的项目,通常以符号(如圆点、方块等)标记。 - 有序列表
<ol>:用于展示有顺序关系的项目,以数字或字母编号。 - 定义列表
<dl>:用于展示术语及其定义的组合。
一、无序列表 <ul>
无序列表通过 <ul> 标签定义,列表项使用 <li> 标签包裹。默认显示为圆点符号。
html
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橙子</li>
</ul>
常用属性:
type:可指定符号类型(如disc、circle、square),但 CSS 更推荐替代此属性。
二、有序列表 <ol>
有序列表通过 <ol> 标签定义,列表项同样使用 <li> 标签。默认显示为数字编号。
html
<ol>
<li>第一步</li>
<li>第二步</li>
<li>第三步</li>
</ol>
常用属性:
type:编号类型(如1、A、a、I、i)。start:起始编号(如start="3"从 3 开始)。reversed:倒序编号(如reversed)。
三、定义列表 <dl>
定义列表用于术语和解释的组合,包含:
<dt>:定义术语。<dd>:术语的描述。
html
<dl>
<dt>HTML</dt>
<dd>超文本标记语言</dd>
<dt>CSS</dt>
<dd>层叠样式表</dd>
</dl>
四、嵌套列表
列表可以嵌套使用,例如无序列表内包含有序列表:
html
<ul>
<li>水果
<ol>
<li>苹果</li>
<li>香蕉</li>
</ol>
</li>
<li>蔬菜</li>
</ul>
五、修改列表符号样式
使用 list-style-type 属性可以更改无序列表的符号样式或有序列表的编号类型。例如将无序列表的实心圆点改为空心圆:
css
ul {
list-style-type: circle;
}
支持的值包括:
- 无序列表:
disc(默认实心圆)、circle(空心圆)、square(方块) - 有序列表:
decimal、lower-roman、upper-alpha等
六、完全移除列表符号
通过设置 list-style-type: none 并清除默认的内边距可以完全移除列表符号:
css
ul {
list-style-type: none;
padding-left: 0;
}
七、使用自定义图片作为列表符号
list-style-image 属性允许使用图片替代默认符号:
css
ul {
list-style-image: url('custom-bullet.png');
}
八、控制列表符号位置
list-style-position 决定符号出现在列表项内部还是外部:
css
ul {
list-style-position: inside; /* 符号与文本对齐 */
}
九、通过伪元素实现高级自定义
通过 ::before 伪元素可以实现更灵活的自定义样式:
css
ul.custom-list li::before {
content: "•";
color: #ff5733;
padding-right: 8px;
}
十、多级列表样式嵌套
为不同层级的列表设置不同样式:
css
ul li { color: #333; }
ul ul li { color: #666; }
ul ul ul li { color: #999; }
这段 CSS 代码通过嵌套的 ul 和 li 选择器实现了对不同层级列表项的文字颜色控制。以下是具体分析:
选择器层级规则
ul li选择所有直接嵌套在ul下的li元素,设置为深灰色(#333)ul ul li选择嵌套在两层ul下的li元素,设置为中灰色(#666)ul ul ul li选择嵌套在三层ul下的li元素,设置为浅灰色(#999)
实际效果示例
html
<ul>
<li>一级列表项(深灰 #333)</li>
<ul>
<li>二级列表项(中灰 #666)</li>
<ul>
<li>三级列表项(浅灰 #999)</li>
</ul>
</ul>
</ul>
注意事项
- 颜色值使用十六进制简写形式(3位),等同于6位形式的重复简写(如
#333=#333333) - 该规则不会影响其他非列表元素或不同嵌套结构的列表
- 更深的嵌套层级需要追加更多
ul选择器进行扩展定义