应使用css的list-style-type属性替代已废弃的html type属性,支持disc、circle、square、none等值;现代方案推荐::marker伪元素精细控制符号样式,兼容chrome 89+、firefox 89+、safari 14.1+。

如何用 CSS 修改 ul 的默认圆点符号
浏览器给 ul 默认加的实心圆点(●)不是写死的,而是由 list-style-type 控制的。改它最直接,也最安全。
-
list-style-type支持disc(默认)、circle、square、none等基础值,直接写在ul或li上都行 - 如果想用中文顿号、短横线或箭头,优先选
list-style-type: "、"(注意引号包裹字符串),但仅在现代浏览器生效 - 别对
ul设置list-style-type: none后就忘了手动加符号——那会彻底消失,且不自动换行对齐
用 ::marker 伪元素精细控制符号样式
这是目前最灵活的方式,能单独调符号颜色、字体、大小,不影响文字本身。但注意兼容性:Safari 14.1+、Chrome 89+、Firefox 89+ 支持,旧版 Edge 不行。
-
li::marker是作用目标,不能写成ul::marker - 支持有限 CSS 属性:
color、font-size、font-family(比如设成"Segoe UI Symbol"显示更稳的符号) - 不能用
margin或padding调整符号间距,得靠content+white-space配合微调 - 示例:
li::marker { color: #2563eb; font-size: 1.1em; }
完全自定义符号时为什么推荐用 background-image 而不是 list-style-image
list-style-image 看起来更“原生”,但实际问题多:无法缩放、位置难对齐、不响应 currentColor、在高 DPI 屏上模糊。
- 改用
li的background-image+background-position,配合padding-left留出空间,控制力强得多 - 图标建议用 SVG 内联(
url("data:image/svg+xml,..."))或.svg文件,避免 PNG 模糊 - 记得加
background-repeat: no-repeat和background-size: contain,否则可能拉伸变形 - 若需适配深色模式,SVG 内联写法可直接引用
currentColor,比外部图片方便
移动端列表符号错位或被截断的常见原因
不是代码写错了,往往是布局挤压导致的视觉异常。
-
li父容器用了overflow: hidden或text-overflow: ellipsis,会把符号剪掉——检查是否意外继承了这些样式 - 设置了
line-height过小(如1),导致::marker垂直居中失效,看起来像“挂”在文字上方 - 使用
flex或grid布局ul时,li若没设align-items: flex-start,符号和文字基线可能不齐 - 某些安卓 WebView 对
::marker渲染不稳定,临时方案是回退到background-image+ 固定padding-left
li,::marker 的 baseline 行为容易被忽略。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











