无需登录 数据私有 本地保存

自定义列表标记 CSS 生成器 - 使用 ::marker 伪元素

17
0
0
0

CSS ::marker 列表标记生成器

可视化自定义列表标记样式 — 实时预览,一键生成 ::marker 伪元素 CSS 代码

👉 ❤️ 🔥 💡 🎯 📌 💎 🌟 ✔️ 🔷 🔶 💠 🟢 🎨
  • 这是第一项示例内容
  • 第二项 — 观察标记样式变化
  • 第三项展示完整效果
li::marker {\n  color: #0d6efd;\n  font-size: 1.2em;\n  font-weight: 700;\n}
兼容 Chrome 86+, Firefox 68+, Safari 11.1+, Edge 86+ 已复制到剪贴板!
常见问题 & 知识点

::marker 是 CSS 伪元素,专门用于选中列表项(<li>)前面的标记符号——即无序列表的圆点、方块,或有序列表的数字、字母等。通过 ::marker,你可以单独设置标记的颜色、字体大小、字体粗细、内容等,而不影响列表项正文的样式。它在 CSS Lists Module Level 3 规范中定义,目前所有主流浏览器均已支持。

✅ 支持的属性:

  • color — 标记颜色
  • content — 自定义标记内容(支持字符串、counter()、attr()等)
  • font-size / font-weight / font-family / font-variant
  • text-transform / white-space / letter-spacing / word-spacing
  • animation / transition — 动画与过渡
  • direction / unicode-bidi

❌ 不支持的属性:

  • background / background-color
  • display / visibility
  • padding / margin
  • width / height
  • border / box-shadow
  • position / float

简言之,::marker 仅支持字体相关属性和 content,无法设置背景、盒模型等布局属性。

使用 ::markercontent 属性即可。例如:
li::marker {
  content: "✨";
  color: #f59e0b;
  font-size: 1.3em;
}
将列表标记替换为 ✨ 符号。你也可以使用任意 Unicode 字符、Emoji(🟢⚡🎯💡)甚至纯文本。对于有序列表,还可以使用 counter(list-item) 结合自定义文本来创建"步骤1"、"步骤2"等格式。

特性::marker::before
作用对象列表项标记符号元素内容之前
支持属性仅字体相关 + content几乎全部 CSS 属性
盒模型无独立盒模型可设置宽高、背景、边框等
定位随标记自动定位可自由定位
使用场景快速修改标记样式复杂自定义装饰、图标等

简单来说:::marker 更轻量、更语义化,适合快速调整列表标记;::before 更灵活,适合需要背景、定位等复杂装饰的场景。但 ::before 需要隐藏原始标记(list-style: none),而 ::marker 直接覆盖原始标记。

桌面浏览器:

  • Chrome 86+ 完全支持
  • Firefox 68+ 完全支持
  • Safari 11.1+ 完全支持
  • Edge 86+ 完全支持

移动端:

  • iOS Safari 11.3+ 支持
  • Android Chrome 86+ 支持
  • Samsung Internet 14+ 支持

全球覆盖约 96%+ 的用户,可以放心使用。对于老旧浏览器,标记会回退到默认样式,不影响列表可读性。

可以!::marker 支持 animationtransition 属性。例如,你可以让标记颜色在悬停时平滑过渡:
li::marker {
  color: #333;
  transition: color 0.3s ease;
}
li:hover::marker {
  color: #ff6b6b;
}

这样当鼠标悬停在列表项上时,标记颜色会平滑过渡到红色。不过需要注意,不是所有属性都支持动画(如 content 的变化无法过渡),建议对 color、font-size 等可插值属性使用动画。

有序列表的数字格式主要通过 list-style-type 属性控制,常用的包括:
  • decimal — 1, 2, 3...
  • lower-alpha — a, b, c...
  • upper-alpha — A, B, C...
  • lower-roman — i, ii, iii...
  • upper-roman — I, II, III...
  • cjk-ideographic — 一、二、三...

配合 ::marker 可以进一步调整数字的颜色、字体、大小等样式。如果需要完全自定义格式(如"第1项"),可使用 content: "第" counter(list-item) "项";

  1. 保持简洁 — ::marker 适合快速调整标记的颜色/大小/内容,复杂装饰请用 ::before。
  2. 注意对比度 — 标记颜色应与背景保持足够对比度,确保可访问性(WCAG AA 要求至少 3:1)。
  3. 使用相对单位 — font-size 推荐使用 em 单位,这样标记大小随列表文字自动缩放。
  4. 提供回退 — 在老浏览器中 ::marker 不生效时,标记会使用默认样式,确保列表仍然可读。
  5. 避免过度使用 Emoji — Emoji 在不同操作系统上显示效果差异较大,测试后再上线。
  6. 有序列表慎用自定义 content — 如果覆盖 content,确保包含 counter(list-item) 以保留计数功能。