18

我想知道在使用@font-face 时是否有可能进行后备设置,以便如果我页面上的文本包含字体中未包含的字符(例如日文字符),则仅显示这些字符基本字体和其他所有字符都保留为自定义字体?

我想象有时可能会在一个段落中混合使用两种字体。

4

2 回答 2

22

您所描述的是浏览器的默认行为 - 它应该自然地回退到缺少字符的基本字体。

但是,有时自定义字体使用空白字符,在这种情况下,您可以尝试使用unicode-range

例如:

@font-face {
    font-family: BBCBengali;
    src: url(fonts/BBCBengali.ttf) format("opentype");
    unicode-range: U+00-FF;
}

摘自这篇有趣的文章:Creating Custom Font Stacks with Unicode-Range

不幸的是,存在浏览器支持问题。

于 2012-07-09T13:08:41.883 回答
6

如果指定的字体不包含字符,CSS 会默认回退到系统字体。您还可以指定回退到哪种字体。

衬线字体示例:

body {
    font-family: "MyNiceFontWithoutJapanesChars", "common serif font", serif;
}

只要后备字体具有您的默认字体遗漏的那些字符,您就应该没问题。

于 2012-07-09T13:12:29.600 回答