字体缺少特定语言的字形 - 在这种情况下如何利用css后备?

时间:2013-02-17 15:40:55

标签: css georgian

我正在使用Myriad Pro,而对于格鲁吉亚语,它显示[X] [X] [X]块。

我想将Myriad Pro用于英语,但如何为格鲁吉亚语言实施回退策略?

enter image description here

做font-family:Myriad Pro,Arial,Serif没有做任何事情。因为这是跳过字体的机制,如果浏览器没有它或理解它...

我有什么选择?

处理此问题的正确方法是什么?

我真的想避免使用php根据所选语言输出css字体系列的php / css ...有更清洁的解决方案吗?

1 个答案:

答案 0 :(得分:1)

由于您的屏幕截图包含一些格鲁吉亚字母,因此系统中必须有一些包含它们的字体(当然,除非它们在图像中)。这表明字体处理有问题。例如,当您指定font-family: Myriad Pro时,浏览器应通过从其他字体中提取字符来处理该字体中不存在的字符。但是,众所周知,浏览器(尤其是IE)经常无法这样做。

相对较少的字体包含格鲁吉亚字母。有关良好(但不完美)的概述,请查看font support to Georgian letter an上的Fileformat.info页面。

解决方案是明确指定包含格鲁吉亚字母的后备字体。 Arial不会这样做,因为它缺乏它们。唯一(合理)安全的方法是通过@font-face使用可下载的字体(网络字体)。如果您使用的是Myriad Pro,一种纯粹的无衬线字体,对于拉丁字母,在印刷上最好使用具有大致相同x高度的无衬线字体。考虑使用DejaVu Sans,一个不错的免费字体(和FontSquirrel @font-face generator)。

您的CSS规则可以

font-family: Myriad Pro, DejaVu Sans, sans-serif;