用 ::before 伪元素可完全自定义列表前缀,通过 list-style: none 清除默认样式,再用 content、display、margin、background 等属性控制图标、颜色、大小、间距及形状,并兼顾响应式与可访问性。
直接用 CSS 的 list-style-type(比如 disc、circle、square)确实容易显得单调,甚至和整体设计不搭。更灵活、更美观的方式是用 ::before 伪元素完全自定义列表项前缀——颜色、大小、间距、图标、动画都能自由控制。
先去掉浏览器默认样式,再用 ::before 手动添加内容:
li 设置 list-style: none,清空原生前缀li::before 设置 content(可以是字符、Unicode 图标,或用 url() 引入 SVG)display: inline-block、margin-right 等微调位置和间距比纯圆点更有设计感的常见做法:
content: "→";、
content: "◆";、content: "•";
content: "\f00c";(需确保字体已加载且 font-family 正确)font-size 和 vertical-align 让图标与文字基线对齐让前缀不只是符号,而是有视觉分量的小元素:
background-color + border-radius 做小圆点或胶囊形width/height + line-height 实现居中(适合块级 ::before)content: ""; display: inline-block; width: 8px; height: 8px; background: #4285f4; border-radius: 50%; margin-right: 12px;
美观不能牺牲可用性:
::before 尺寸和间距,避免挤占文字空间aria-label 或隐藏文本补充说明基本上就这些——::before 方案自由度高、兼容性好(IE8+ 支持),改起来也快。关键是把前缀当成一个独立的视觉模块来设计,而不是附属装饰。