六维教程

CSS 列表样式

列表在网页里无处不在,导航菜单、文章目录、功能清单,背后都是列表。默认的小圆点和小序号够用但不精致,CSS 提供了完整的列表样式方案。

列表的三种基本类型

ul 无序列表、ol 有序列表、dl 描述列表,三种各有用途。

<ul>
  <li>苹果</li>
  <li>香蕉</li>
</ul>

<ol>
  <li>第一步</li>
  <li>第二步</li>
</ol>

ul 默认显示小圆点,ol 默认显示数字序号。

list-style-type 控制标记样式

标记就是每项前面的圆点或序号,用 list-style-type 控制。

ul {
  list-style-type: square;
}
ol {
  list-style-type: lower-roman;
}

无序列表常用 disc 圆点、circle 空心圆、square 方块。有序列表有 decimal 数字、lower-alpha 小写字母、lower-roman 小写罗马数字。

想完全去掉标记,用 none

ul {
  list-style-type: none;
  padding: 0;
}

注意 list-style-type: none 之后还要把 padding 清掉,否则前面的位置还留着空白。菜单类列表基本都这么干。

自定义标记图标

内置标记太普通,可以换成图片或字符。

ul.custom {
  list-style-image: url("/images/arrow.png");
}

list-style-image 用图片当标记,但图片大小不好控制,实际项目里更推荐用背景图或者伪元素,可控性更强。

ul.custom {
  list-style-type: none;
  padding-left: 20px;
}
ul.custom li::before {
  content: "→ ";
  color: #3498db;
}

CSS 伪元素 在每项前面插入箭头字符,颜色大小都能控制,比图片灵活。

list-style-position 标记的位置

标记在文本外面还是里面,用 list-style-position 控制。

ul {
  list-style-position: inside;
}

默认是 outside,标记在文字左侧独立位置,长文本换行时标记保持在左侧。改成 inside 后标记跟着文字一起缩进,换行时标记在行内。用 outside 加左边距排版更整齐。

简写属性

list-style 一行写完类型、位置、图片,顺序随意。

ul {
  list-style: square inside;
}

控制嵌套列表的层级

多级列表每个层级用不同标记,层次更清楚。

ul ul {
  list-style-type: circle;
}
ul ul ul {
  list-style-type: square;
}

第一层圆点,第二层空心圆,第三层方块,层层递进。

小结

列表样式围绕标记做文章。list-style-type 选类型,list-style-image 用图片,list-style-position 定位置。做菜单导航时记得 none 加清 padding。想更精致就用伪元素自己画标记。

上一篇
CSS 链接样式
下一篇
CSS 表格样式