当使用带有@fontfoce
规则的阿拉伯字体时,会发生一些奇怪的事情:当涉及到罗马字符时,几乎所有浏览器(Opera 除外)都不使用该字体的罗马字符集,而是使用font-family
属性中声明的其他字体的字符集. 让我们来说明一下。这是我的@fontface
规则:
@font-face {
font-family: 'hasoobCM';
src: url('/media/fonts/hasoob.eot'); /* IE9 Compat Modes */
src:url('/media/fonts/hasoob.eot?#') format('eot'),
url('/media/fonts/hasoob.woff') format('woff'),
url('/media/fonts/hasoob.ttf') format('truetype');
}
而且,这里是字体声明:
.hasoob { font-family: hasoobCM, Georgia, "Times New Roman"; }
现在,文本的罗马字符将是 ofGeorgia
和 not hasoobCM
。
有趣的是,如果我将字体声明为.hasoob { font-family: hasoobCM; }
,那么问题就会得到解决并且字符会正确呈现。问题是我不能这样做,因为字体大小不一致。
那么,我应该怎么做才能“强制”浏览器使用我字体的所有字符集?
顺便说一句,规则中有一个unicode-range
,@fontface
但我不知道我的字体的确切完整字符集范围,我不确定这是否能解决问题。