您可以通过别名字体来做到这一点。这仅在字体未被替换超出您建议的字体时才有效(serif
此处不能使用 catch-all-of-type 关键字等),但您可以通过使用 web-font 来保证这一点。网络字体可以用作备份,因此您不需要总是下载它。
让我们先尝试不备份:
@font-face {
font-family: 'Fake Oblique Font';
font-style: normal;
font-weight: 400;
src: local('Bell MT'), local('Georgia');
}
@font-face {
font-family: 'Fake Oblique Font';
font-style: normal;
font-weight: 700;
src: local('Bell MT Bold'), local('Georgia Bold');
}
*
{
font-family: 'Bell MT Bold', Georgia, serif;
}
.oblique
{
font-style: oblique;
font-family: 'Fake Oblique Font';
}
在研究“Fake Oblique Font”如何工作时,浏览器只有这些声明中提到的表格可用。我的机器上没有可用的 Bell MT,但这确实成功地使用了带有强制倾斜样式的 Georgia 和 Georgia Bold:http: //jsfiddle.net/k1w1zt0g/特别x
是斜体和斜体之间最明显的不同假斜。
这不起作用的地方是,如果没有提到的字体可用,因为local()
声明不能使用通用标签,如serif
. 一个人可以决定接受它(如果你回退到serif
那么你无论如何都会回退,所以你已经有点偏离你的目标设计了),或者使用 webfont 保证。MS 确实授权 Bell MT 用于网络使用,但我不会仅仅为了写证明而授权它,所以我将使用 Google Fonts 中的 Noto Serif 代替:
Noto Serif 是她的一个方便的选择,因为它提供了一整套正常、粗体、斜体和粗体斜体。这使我能够展示更全面的变化。删除以下代码使用的粗斜体字体,并通过在使用斜体时对斜体进行假粗体化,来查看浏览器也进行了更多的伪装:
@font-face {
font-family: 'Noto Serif';
font-style: normal;
font-weight: 400;
/* There are lots of pros and cons about just how you allow or disallow local fonts
to be used. I'll go with allowing it here, to show it works throughout, but by
all means change this to local('☺') to block local use, or so on. */
src: local('Noto Serif'), local('NotoSerif'), url(http://fonts.gstatic.com/s/notoserif/v4/Lpe_acwQmwESv6cuCHE3rfesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}
@font-face {
font-family: 'Noto Serif';
font-style: normal;
font-weight: 700;
src: local('Noto Serif Bold'), local('NotoSerif-Bold'), url(http://fonts.gstatic.com/s/notoserif/v4/lJAvZoKA5NttpPc9yc6lPYSoAJ3FdnHwSRdilZRLja4.woff) format('woff');
}
@font-face {
font-family: 'Noto Serif';
font-style: italic;
font-weight: 400;
src: local('Noto Serif Italic'), local('NotoSerif-Italic'), url(http://fonts.gstatic.com/s/notoserif/v4/HQXBIwLHsOJCNEQeX9kNzxsxEYwM7FgeyaSgU71cLG0.woff) format('woff');
}
@font-face {
font-family: 'Noto Serif Fake Oblique';
font-style: normal;
font-weight: 400;
src: local('Noto Serif'), local('NotoSerif'), url(http://fonts.gstatic.com/s/notoserif/v4/Lpe_acwQmwESv6cuCHE3rfesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}
@font-face {
font-family: 'Noto Serif Fake Oblique';
font-style: normal;
font-weight: 700;
src: local('Noto Serif Bold'), local('NotoSerif-Bold'), url(http://fonts.gstatic.com/s/notoserif/v4/lJAvZoKA5NttpPc9yc6lPYSoAJ3FdnHwSRdilZRLja4.woff) format('woff');
}
*
{
font-family: 'Noto Serif';
}
.oblique
{
font-family: 'Noto Serif Fake Oblique'; /* Force faking, by only providing non-italic, non-oblique forms. */
font-style: oblique;
}
http://jsfiddle.net/k1w1zt0g/1/