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

如何针对不同文字脚本自动补偿CSS下划线?

多语言文本下划线显示异常问题

以下是一段带有下划线的英文文本示例:
English Text

诚然,字母"p"的descender(下行部分)会与下划线重叠,但除此之外,下划线明显位于文字下方。

另一方面,我们来看中文的情况:
中文下划线示例

下划线肯定不在文字上方,但也并非严格位于文字下方,而是处于文字的“底部区域”。可能有人会说“这就像英文里"p"的descender一样”,但我并不这么认为。不含descender的英文文本底部与句号底部对齐,下划线完全位于句号下方(下划线顶部与句号底部对齐):

underline ->    ▃ ▀  <- period

但在中文文本中,下划线与句号底部对齐,而非位于其下方(下划线底部与句号底部对齐):

underline ->    ▀ ▀  <- period

我测试了另外约8种非拉丁语系文字脚本,其中一半的下划线显示正常,另一半则是“似是而非的下划线”。

我知道可以通过偏移CSS下划线来调整,但不清楚不同脚本需要多少偏移量,且我需要处理超过100种语言。是否有办法让CSS始终将下划线置于文字下方,而非类似删除线的位置?

其他语言情况

  • 韩语:问题最轻,只是略有偏移,如果这是最严重的情况,我还能接受。
    韩语下划线示例
  • 蒙古语:情况不算太差,但显然对“descender”的定义比较宽泛。
    蒙古语下划线示例
  • 阿姆哈拉语:情况和中文一样糟,甚至更严重。
    阿姆哈拉语下划线示例

以下是颜色反转后的中文示例,问题更加明显:
颜色反转中文下划线示例

浏览器差异

编辑补充:该问题仅出现在Chrome/Brave浏览器中。

  • Brave浏览器效果:
    Brave浏览器下划线示例
  • Firefox浏览器效果:
    Firefox浏览器下划线示例

使用的字体

  • 字体一:
    字体一
  • 字体二:
    字体二

内容的提问来源于stack exchange,提问作者Peter R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:25:39