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

如何用CSS仅选择日语CJK字符而非罗马音(Romaji)文本?

问题更新说明

经排查,语言代码本身没问题,失效是因为其他CSS代码冲突,之前关于ja-latn的猜测全错了。目前问题基本解决,后续排查完会更新内容,实在搞不定就重新开发。

纯CSS解决方案(针对原始需求)

要在不额外加HTML标记的前提下,只给日语CJK字符(汉字、假名)加text-emphasis,同时排除罗马音,直接用Unicode字符范围控制就行:

/* 基础方案:跳过拉丁字母,只给CJK字符加强调 */
:lang(ja) {
  text-emphasis: dot;
  /* 让罗马音(拉丁字母)跳过强调效果 */
  text-emphasis-skip: space, punctuation, "a"-"z", "A"-"Z";
}

如果要更精准,直接指定日语字符的Unicode范围:

:lang(ja) {
  text-emphasis: dot;
  /* 只对指定的日语字符应用强调 */
  text-emphasis-target: "\4E00"-"\9FFF", "\3040"-"\30FF", "\31F0"-"\31FF";
}

为什么这招管用

  • text-emphasis-skip 能指定哪些字符不应用强调,这里直接排除所有大小写拉丁字母,罗马音自然不会被影响;
  • text-emphasis-target 则精准锁定日语常用的汉字、平假名、片假名以及扩展假名的Unicode范围,完全不会波及拉丁字符;
  • 不用再纠结ja-latn的语言归属问题,彻底绕开之前的坑。

要是你之前是给整个:lang(ja)元素加的text-emphasis导致罗马音继承,用上面的方法就能精准控制,根本不需要加额外的<span>类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:01:11