系统字体如何处理不同的语言?

时间:2018-01-24 01:41:31

标签: css fonts font-family system-font

如果我在设计中使用-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比使用常规阿拉伯数字的人短。

1 个答案:

答案 0 :(得分:2)

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

在你的例子中,“100”肯定会使用SF,但在SF旁边找不到它的人,所以检查Hiragino是否支持该字符。它确实如此,因此使用了Hiragino。如果下一个字形是,例如,一些Arameic字母,并且你的堆栈中有一个带有Arameic支持的字体,则SF会失败,Hiragino会失败,然后Arameic字体会成功。但是,重要的是要注意浏览器不“尽可能长时间地使用一种字体”,他们总是会尝试使用“堆栈中的第一个字体,然后回到下一个字体,直到它们用完显式字体尝试“。

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