Skip to content

列表样式

CSS中的列表样式允许我们自定义列表的外观。本文将介绍如何为列表添加样式。

列表的默认样式

HTML中的列表元素都有一些默认的样式:

  • <ul><ol>元素有顶部和底部外边距(16px)和左内边距(40px
  • 列表项(<li>)默认没有设置间距
  • <dl>元素有顶部和底部外边距(16px),但没有内边距
  • <dd>元素有左外边距(40px

列表间距处理

为了保持页面的垂直节奏,我们需要调整列表的间距:

css
/* 统一字体大小 */
ul,
ol,
dl,
p {
  font-size: 1.5rem;
}

/* 统一行高 */
li,
p {
  line-height: 1.5;
}

/* 描述列表样式 */
dd,
dt {
  line-height: 1.5;
}

dt {
  font-weight: bold;
}

列表特定样式

项目符号样式

使用list-style-type属性设置项目符号的类型:

css
ul {
  list-style-type: square;    /* 方形符号 */
}

ol {
  list-style-type: upper-roman; /* 大写罗马数字 */
}

项目符号位置

list-style-position属性控制项目符号的位置:

css
ul {
  list-style-position: outside; /* 默认值,符号在内容外 */
  list-style-position: inside;  /* 符号在内容内 */
}

自定义项目符号图片

可以使用图片作为项目符号:

css
ul {
  /* 使用list-style-image(不推荐) */
  list-style-image: url(star.svg);
  
  /* 使用background属性(推荐) */
  padding-left: 2rem;
  list-style-type: none;
}

ul li {
  padding-left: 2rem;
  background-image: url(star.svg);
  background-position: 0 0;
  background-size: 1.6rem 1.6rem;
  background-repeat: no-repeat;
}

list-style简写属性

可以使用list-style简写同时设置多个列表样式属性:

css
ul {
  list-style: square url(example.png) inside;
  /* type image position */
}

列表计数管理

起始值设置

使用start属性设置起始计数值:

html
<ol start="4">
  <li>第四项</li>
  <li>第五项</li>
  <li>第六项</li>
</ol>

反向计数

使用reversed属性实现反向计数:

html
<ol start="4" reversed>
  <li>第一项</li>
  <li>第二项</li>
  <li>第三项</li>
</ol>

指定数值

使用value属性为列表项指定具体数值:

html
<ol>
  <li value="2">第二项</li>
  <li value="4">第四项</li>
  <li value="6">第六项</li>
</ol>

最佳实践

  1. 间距处理

    • 保持列表与其他元素的垂直间距一致
    • 使用合适的行高确保可读性
    • 注意嵌套列表的缩进
  2. 项目符号

    • 选择符合内容语义的项目符号类型
    • 使用background属性而不是list-style-image
    • 确保自定义项目符号的大小适中
  3. 响应式考虑

    • 使用相对单位设置间距
    • 确保在小屏幕上项目符号仍然清晰可见
    • 考虑移动设备上的可读性
  4. 可访问性

    • 保持适当的颜色对比度
    • 确保项目符号清晰可见
    • 使用语义化的HTML结构