如何在font-face中为不受支持的字符添加后备字体?

时间:2014-06-01 12:54:21

标签: html css utf-8 font-face hebrew

我在网站上使用希伯来语的自定义字体,我错过了整套英文字符a-b,A-Z。

现在我在body标签上使用字体(reformaregular):

body { font-family: 'reformaregular', Arial, Halvetica, sans-serif; }

英文字符出现在Windows上的衬线字体Times New Roman的系统默认值中:

enter image description here

请注意底部的英文衬线和顶部的自定义希伯来字体。

除了使用自定义.en类标记所有内容;

我的问题是如何为英文字体添加后备广告?

2 个答案:

答案 0 :(得分:1)

您不能使用不同语言的不同字体。如果您的希伯来语字体没有英文字符集(例如数字)而不是运气不好。我们找到的唯一方法是运行一个检测非希伯来语字符集的JavaScript,并使用正确的英文字体为文本添加.englishlang attribute

答案 1 :(得分:1)

实际上,如果我对您的问题理解正确,则可以使用CSS unicode-range

请参见@ font-face / unicode-range,位于:https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/unicode-range

和一个简单的例子:

@font-face {
    font-family: Almoni;
    src: url(Almoni.ttf);
    unicode-range: U+0590-05FF;
}
@font-face {
    font-family: CoolOtherLanguageFont;
    src: url(CoolOtherLanguageFont.ttf);
    unicode-range: U+0370-03FF, U+1F00-1FFF;
}
body {
    font-family: Almoni, CoolOtherLanguageFont, Helvetica;
}