0

如果我在设计中使用 -appel-system 字体堆栈,我会看到根据语言使用的各种字体。例如,罗马字符显示在“旧金山”中,日语显示在“Hiragino Kaku Gothic Pro”中

https://css-tricks.com/snippets/css/system-font-stack/ https://www.quora.com/What-is-the-Mac-OS-X-Japanese-system-font

但是如果你有混合文本会发生什么?比如写100+人很常见,但那是两种不同的字符类型,那么有两种不同的字体吗?半角(普通) 100 人 全角(特殊) 100人 你可以看到 100 比使用普通阿拉伯数字的人短。

4

1 回答 1

2

字母按字体堆栈顺序解析,其中任何字母都使用支持它的任何字体,从您的第一个字体开始,沿着列表向下直到找不到字体,此时“系统开始选择一些东西”。

在您的示例中,“100”肯定会使用 SF,但在 SF 中找不到它旁边的人,因此检查平野是否支持该字符。确实如此,所以平野被使用了。如果下一个字形是,比如说,某个阿拉米字母,并且你的堆栈中也有一个支持阿拉米的字体,那么 SF 会失败,Hiragino 会失败,然后阿拉米字体会成功。然而,重要的是要注意浏览器不会“尽可能长时间地使用一种字体”,它们总是会尝试使用“堆栈中的第一个字体,然后退回到下一个字体,直到它们用完显式字体去尝试”。

所以,如果你有一些文本“100人。”,那么.SF 会再次设置样式,即使 arameic 字体也支持它。浏览器将尝试尽快返回到“堆栈中更高的字体”。

于 2018-01-24T06:29:10.967 回答