我想知道在使用@font-face 时是否有可能进行后备设置,以便如果我页面上的文本包含字体中未包含的字符(例如日文字符),则仅显示这些字符基本字体和其他所有字符都保留为自定义字体?
我想象有时可能会在一个段落中混合使用两种字体。
您所描述的是浏览器的默认行为 - 它应该自然地回退到缺少字符的基本字体。
但是,有时自定义字体使用空白字符,在这种情况下,您可以尝试使用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
不幸的是,存在浏览器支持问题。
如果指定的字体不包含字符,CSS 会默认回退到系统字体。您还可以指定回退到哪种字体。
衬线字体示例:
body {
font-family: "MyNiceFontWithoutJapanesChars", "common serif font", serif;
}
只要后备字体具有您的默认字体遗漏的那些字符,您就应该没问题。