下面介绍如何使用CSS3设计列表的基本样式。
项目符号类型
使用CSS3的list-style-type属性可以定义列表项目符号的类型,也可以取消项目符号,该属性取值说明如表1所示。
表1 list-style-type属性值
| 属性值 | 说明 | 属性值 | 说明 |
|---|---|---|---|
| disc | 实心圆,默认值 | upper-roman | 大写罗马数字 |
| circle | 空心圆 | lower-alpha | 小写英文字母 |
| square | 实心方块 | upper-alpha | 大写英文字母 |
| decimal | 阿拉伯数字 | none | 不使用项目符号 |
| lower-roman | 小写罗马数字 | armenian | 传统的亚美尼亚数字 |
| cjk-ideographic | 浅白的表意数字 | georgian | 传统的乔治数字 |
| lower-greek | 基本的希腊小写字母 | hebrew | 传统的希伯莱数字 |
| hiragana | 日文平假名字符 | hiragana-iroha | 日文平假名序号 |
| katakana | 日文片假名字符 | katakana-iroha | 日文片假名序号 |
| lower-latin | 小写拉丁字母 | upper-latin | 大写拉丁字母 |
使用CSS3的list-style-position属性可以定义项目符号的显示位置。该属性取值包括outside和inside,其中outside表示把项目符号显示在列表项的文本行以外,列表符号默认显示为outside,inside表示把项目符号显示在列表项文本行以内。
【注意】
如果要清除列表项目的缩进显示样式,可以使用下面样式实现:
ul, ol {
padding: 0;
margin: 0;
}
【示例】下面示例定义项目符号显示为空心圆,并位于列表行内部显示,如图6所示。
<style type="text/css">
body {/* 清除页边距 */
margin: 0; /* 清除边界 */
padding: 0; /* 清除补白 */
}
ul {/* 列表基本样式 */
list-style-type: circle; /* 空心圆符号*/
list-style-position: inside; /* 显示在里面 */
}
</style>
<ul>
<li><a href="#">关于我们</a></li>
<li><a href="#">版权信息</a></li>
<li><a href="#">友情链接</a></li>
</ul>

图6 定义列表项目符号
【提示】
在定义列表项目符号样式时,应注意两点:
- 第一,不同浏览器对于项目符号的解析效果,以及其显示位置略有不同。如果要兼容不同浏览器的显示效果,应关注这些差异。
- 第二,项目符号显示在里面和外面会影响项目符号与列表文本之间的距离,同时影响列表项的缩进效果。不同浏览器在解析时会存在差异。
项目符号图像
使用CSS3的list-style-image属性可以自定义项目符号。该属性允许指定一个外部图标文件,以此满足个性化设计需求。用法如下所示:
list-style-image:none | <url>
默认值为none。
【示例】以上节示例为基础,重新设计内部样式表,增加自定义项目符号,设计项目符号为外部图标bullet_main_02.gif,效果如图7所示。
<style type="text/css">
ul {/* 列表基本样式 */
list-style-type: circle; /* 空心圆符号*/
list-style-position: inside; /* 显示在里面 */
list-style-image: url(images/bullet_main_02.gif); /* 自定义列表项目符号 */
}
</style>

图7 自定义列表项目符号
【提示】
当同时定义项目符号类型和自定义相符符号时,自定义项目符号将覆盖默认的符号类型。但是如果list-style-type属性值为none或指定外部的图标文件不存在时,则list-style-type属性值有效。
自定义项目符号
使用CSS3的background属性也可以模拟列表项目的符号,设计技巧:
第1步,先使用list-style-type:none隐藏列表的默认项目符号。
第2步,然后使用background属性为列表项目定义背景图像,精确定位其显示位置。
第3步,同时使用padding-left属性为列表项目定义左侧空白,避免背景图被项目文本遮盖。
【示例】在下面这个示例中,先清除列表的默认项目符号,然后为项目列表定义背景图像,并定位到左侧垂直居中的位置,为了避免列表文本覆盖背景图像,定义左侧补白为一个字符宽度,这样就可以把列表信息向右方向缩进显示,显示效果如图8所示。
<style type="text/css">
ul {/* 清除列默认样式 */
list-style-type: none;
padding: 0;
margin: 0;
}
li {/* 定义列表项目的样式 */
background-image: url(images/bullet_sarrow.gif); /* 定义背景图像 */
background-position: left center; /* 精确定位背景图像的位置 */
background-repeat: no-repeat; /* 禁止背景图像平铺显示 */
padding-left: 1em; /* 为背景图像挤出空白区域 */
}
</style>

图8 使用背景图模拟项目符号