Styling CSS List
撰写时间:2025-04-07
修订时间:2026-10-11
默认效果
- Item1
- Item2
- AAA
- BBB
- CCC
- Item3
默认缩进
- Item1
- Item2
- AAA
- BBB
- CCC
- Item3
li标签有缩进,且li的子元素ul也有缩进。
各浏览器对ul的默认CSS设置如下:
padding-inline-start设置了一个从哪开始计算行内padding的偏移值,最终的padding值为:
上面代码,padding-inline-start的值被设置为40px,该属性值将被各个子标签继承,导致了其每一级子标签,包括li及ul,均从父标签的当前位置先向右缩进40px后再开始计算padding,从而形成了分级缩进的效果。
Marker
list-style-position
list-style-position指定列表项目的图标位置。
- Item1
- Item2
- Item3
- Item1
- Item2
- Item3
list-style-position的默认值为outside,则图标位于列表项目的盒子外部的左边。当其值为inside时,图标位于列表项目的盒子内部的左边。
- Item1
- Item2
- Item3
- Item1
- Item2
- Item3
当给li设置padding-left值时,outside类型的图标不会动,而inside类型的图标则紧随其文本内容向右移动。
当给li设置margin-left值时,图标及文本内容均统一右移。
- Item1
- Item2
- Item3
- Item1
- Item2
- Item3
但两种类型的图标位置均受padding-inline-start的值的影响。
- Item1
- Item2
- Item3
- Item1
- Item2
- Item3
如果li有::before的设置,则图标位于::before内容的左边。
- Item1
- Item2
- Item3
- Item1
- Item2
- Item3
项目内容为多行文本的设置
我们经常遇到先以一个段落开始、再用列表来加以解释说明的情况。
有序项目列表的编排,列表项目的list-style-position为outside。
- 多行项目中的第一行。
多行项目中的第二行。
- 单行项目内容。
- 单行项目内容。
有序项目列表的编排,列表项目的list-style-position为inside。
- 多行项目中的第一行。
多行项目中的第二行。
- 单行项目内容。
- 单行项目内容。
当li的list-style-position为outside时,多行文本可自动对齐至数字的右边;而inside的多行文本则对齐到边框,有错位的感觉。
因li一般直接内嵌文本,为遵循此约定,仅在第二行时才使用p标签。li内的p,需将其line-height值归零,以让项目内容紧靠在一起。
将li的margin-bottom值设置为1.5em,以在各个项目之间产生更多的间隙;margin-left值设置为0.5em,让序号产生缩进2字符的效果。
list-style-type
list-style-image
- Item1
- Item2
- Item3
list-style
如果图标文件不存在,可使用第2个参数额外指定默认的图标类型。
- Item1
- Item2
- Item3
可使用一或多个Unicode字符作为图标。可使用Unicode编码值为\20的空格来添加间距。
- Item1
- Item2
- Item3
下面形成多级缩进的多图标效果。
- Item1
- Item2
- A
- B
- C
- Item3
设置content内容
我们不能直接设置content的尺寸大小,但可通过背景图像,精细改变其大小及位置。
- Item1
- Item2
- Item3
将li的display设置为flex,可以很方便地分别调节图标及文本。
首先,设置为flex后,其效果先将list-style-type设置为none。
其次,在li上设置padding,将同时影响图标及文本。
再次,在::before中设置padding-left或padding-right,如果背景图像允许重复,则上面所设置的空间用于重复平铺背景图像。在::before中设置margin-left,同时影响图标及文本的左边距;设置margin-right,只影响文本的左边距;设置margin-top及margin-bottom,只影响图标的上下边距。
树形控件
实现最基本的设置
- 中国
- 北京
- 广东省
- 广州市
- 韶关市
- 海南省
- 海口市
- 美兰区
- 龙华区
- 秀英区
- 琼山区
- 三亚市
- 海口市
- 安徽省
- 合肥市
- 安庆市
- United States of America
- Washington
- Florida
锦上添花
第一步:敲定基本版面
- 中国
- 北京
- 广东省
- 广州市
- 韶关市
- 海南省
- 海口市
- 美兰区
- 龙华区
- 秀英区
- 琼山区
- 三亚市
- 海口市
- 安徽省
- 合肥市
- 安庆市
第二步:图标与连线
- 中国
- 北京
- 广东省
- 广州市
- 韶关市
- 海南省
- 海口市
- 美兰区
- 龙华区
- 秀英区
- 琼山区
- 三亚市
- 海口市
- 安徽省
- 合肥市
- 安庆市
第三步:用户交互
- 中国
- 北京
- 广东省
- 广州市
- 韶关市
- 海南省
- 海口市
- 美兰区
- 龙华区
- 秀英区
- 琼山区
- 三亚市
- 海口市
- 安徽省
- 合肥市
- 安庆市
