优先用 li::marker 控制颜色与大小,现代浏览器支持 color 和 font-size;老浏览器需用 list-style: none + ::before 兜底。

li 里用 标签改符号颜色根本无效
直接在 <li> 里套 <font color="red"></font> 或写内联 style="color:red",只能影响文字颜色,对默认圆点、数字等符号完全没作用。浏览器把符号当独立装饰元素渲染,不继承文本样式。
list-style-type 本身不支持颜色和大小控制
list-style-type 只决定符号“类型”,比如 disc、square、lower-alpha,它不是样式属性,不能设 color 或 font-size。写成这样:
li { list-style-type: disc; color: red; font-size: 18px; }
→ 文字变红变大,但圆点还是灰色、原始尺寸。
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
现代方案:优先用 li::marker 控制颜色与大小
这是最干净、语义最正的解法,但要注意兼容性和可用属性:
-
li::marker { color: #e74c3c; font-size: 1.3em; }在 Chrome 86+、Firefox 68+、Safari 15.4+(含 iOS)生效 - 旧版 Safari(15.3 及更早)、Chrome 80、所有 IE 版本会静默忽略整个规则,不报错也不渲染
- 仅
color是强制支持;font-size和font-family在主流现代浏览器稳定,但background、margin、padding全部无效 - 如果 DevTools 里看到
li::marker规则被划掉(strikethrough),先检查是否被父级color覆盖,或是否用了list-style-image(它会禁用::marker)
兜底方案:用 list-style: none + ::before 完全接管
当需要兼容老浏览器,或要加图标、动画、背景色等 ::marker 不支持的效果时,这个方案最可控:
ol, ul { list-style: none; }
li { position: relative; padding-left: 1.5em; }
li::before {
content: "•";
color: #9b59b6;
font-size: 1.2em;
position: absolute;
left: 0;
top: 0.1em;
}
关键点:
-
content可填任意字符、emoji(如"→"、"✓")或用counter()实现自定义编号 - 必须设
position: absolute+left手动定位,否则容易和文字重叠 - 若用于
<ol></ol>,记得先用counter-reset/counter-increment配合counter() - 这个方案在所有浏览器都可靠,但多了一层 DOM 模拟逻辑,维护成本略高
::marker 是专为此设计的,但它的能力边界比直觉窄;而硬塞 <font></font> 或指望 color 继承,只会卡在“看起来写了,实际没变”的调试循环里。

















