如何仅将字体应用于特定范围的Unicode字符

4
从数据库查询到的字符串如下所示:អាស័យដ្ឋានបច្ចុប្បន្ន 123,Street: National Road 3,ភូមិ១,អូរឫស្សីទី២,៧មករា,ភ្នំពេញ តទៅនេះហៅថាភាគី«ក»។

我使用了字体font-family: 'Battambang', cursive;。 ASCII字符在这种字体下看起来很好,但是字符串中的其他字符看起来有点麻烦。

在浏览器上呈现的效果如下:

View on Browser

如果我删除字体,非Unicode字符看起来很好,但Unicode字符不行。

Removing font-face

因此,有没有CSS技巧可以仅将字体应用于某些Unicode字符而不应用于其他字符?


2
查看 unicode-range - user663031
2
请注意,element{font-family: font1, font2, font3}会自动尝试在font1不支持字形时回退到font2 - Kaiido
4
技术说明:它们都是 Unicode 字符。 - Mark Tolonen
1个回答

7

由于Battambang字体不包含那些字符,它们会退回到您指定的草书体。使用通常会被继承的那个。

font-family: Battambang, Roboto; /* or whatever it would be normally */

对于包含你想要排除的字符的字体,你还需要指定一个 unicode-range

@font-face {
    src: /* … */;
    font-family: Battambang;
    <b>unicode-range: U+1780-17FF, U+200B-200C, U+25CC</b>;
}

谢谢,它运行得非常好。由于这对我来说是相当新的语法,我对“unicode-range”不太清楚。您说要使用“unicode-range”从指定的字体“Battambang”中排除字符,但是从您答案中的文档链接中说,“unicode-range” CSS描述符设置要从@font-face定义的字体中使用的特定字符范围[...]。这意味着与您所说的不同,“包括”与“排除”。谢谢。 - Houy Narun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接