You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS实现带括号小写字母有序列表时(c)自动转为版权符号如何解决

问题原因

该异常是字体的OpenType自动排版替换特性导致的:你引入的Manrope字体内置了特殊字符替换规则,会将连续字符组合(c)自动转换为版权符号©,和CSSlower-alpha计数器本身逻辑无关。::marker伪元素内的文本默认继承字体的这类自动替换规则,因此触发了非预期的字符转换。

解决方案

方案1:禁用marker区域的字符连字/替换(改动最小)

直接在现有CSS中追加如下规则,关闭marker区域的字体自动替换特性即可,不需要修改原有计数器逻辑:

ol > li::marker {
    font-variant-ligatures: none;
}

如果需要兼容极旧版本浏览器,可以额外增加text-rendering: optimizeSpeed;属性,进一步阻止字体的智能字符替换。

方案2:改用::before伪元素实现序号(兼容性最佳)

::marker伪元素的样式可控性在部分旧浏览器中存在局限,你也可以放弃::marker,改用::before伪元素实现带括号的小写字母序号,彻底避开字符替换问题,将原有CSS中和ol序号相关的代码替换为如下内容即可:

ol {
    counter-reset: list;
    padding-left: 30px;
    line-height: 2rem;
}
ol > li {
    list-style: none;
    counter-increment: list;
    position: relative;
    padding-left: 2em;
}
ol > li::before {
    content: "(" counter(list, lower-alpha) ")\a0";
    position: absolute;
    left: 0;
    font-variant-ligatures: none;
}
额外修复建议

你现有CSS中存在两处不规范的写法,建议同步修正避免后续出现异常:

  • 存在两段重复的ol > li::marker规则,后写的规则会覆盖前序规则,冗余代码可以删除
  • .laparent相关的计数器使用了数字1作为计数器名称,不符合CSS规范(计数器名称不能以数字开头),建议修改为有语义的名称如laparent-counter,避免计数失效。

内容的提问来源于stack exchange,提问作者Franciszek Job

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 00:48:31