可用::before伪元素替换默认圆点,先用list-style:none清除原生符号,再在li上设position:relative,通过::before绝对定位插入content字符并调整样式,配合margin-right或padding-left留白,以及padding-left和top:0.25em适配多行对齐。

可以用 ::before 伪元素替换默认圆点,关键在于清除原生标记并用内容+样式重绘。
清除默认列表符号
先关闭浏览器自带的项目符号,否则会和自定义符号重叠:
-
list-style: none;—— 最直接的方式,彻底移除原生标记 - 或用
list-style-type: none;(仅去类型,不处理图像或位置)
用 ::before 添加自定义符号
给 li 元素添加伪元素,通过 content 插入字符或图标,并控制位置和样式:
- 设置
position: relative;在li上,方便绝对定位符号 -
::before设为position: absolute;,用left和top调整位置 -
content: "•";、"→"、"✓"或 Unicode 图标(如"\2713") - 可加
font-size、color、line-height等精细控制外观
保持文本对齐与间距合理
自定义符号后,文字容易紧贴符号,需留出呼吸感:
立即学习“前端免费学习笔记(深入)”;
- 给
::before设margin-right: 8px;(推荐用margin而非padding) - 或用
left: -16px;+padding-left: 16px;实现悬挂缩进效果 - 若符号用图标字体(如 Font Awesome),确保
font-family正确,且设置display: inline-block;防止换行错位
适配多行列表项
当 li 内容换行时,避免第二行顶到符号下方:
- 给
li加padding-left: 24px;(略大于符号宽度) -
::before使用top: 0.25em;对齐文本基线,而非top: 0; - 设
vertical-align: middle;(配合display: inline-block;)提升垂直一致性










