特殊字符上的后备字体

sow*_*012 15 css fonts font-face

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

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

jfr*_*rej 20

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

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

例如:

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

摘自这篇有趣的文章:使用Unicode-Range创建自定义字体堆栈

不幸的是有浏览器支持问题.


Jør*_*n R 6

如果指定的字体不包含字符,则CSS具有系统字体的默认回退.您还可以指定要回退的字体.

serif字体的示例:

body {
    font-family: "MyNiceFontWithoutJapanesChars", "common serif font", serif;
}
Run Code Online (Sandbox Code Playgroud)

只要后备字体具有您的默认字体未命中的那些字符,您应该没事.

  • 有趣的是,我一直认为仅在整个字体缺失的情况下应用后备,但实际上也适用于单个字形.引用:[CSS 2.1 spec](http://www.w3.org/TR/CSS21/fonts.html#algorithm). (3认同)