我正在尝试使用@ font-face来替换字体的实例 . 这通常对我有用:
@font-face {
font-family: 'Arial';
font-weight: bold;
font-style: italic;
src: local('Times New Roman');
}
@font-face {
font-family: 'Arial';
font-weight: bold;
src: local('Times New Roman');
}
@font-face {
font-family: 'Arial';
font-style: italic;
src: local('Times New Roman');
}
@font-face {
font-family: 'Arial';
src: local('Times New Roman');
}
最终结果是Arial的实例被Times New Roman取代 . 实际上,这适用于运行Windows 10和Chrome 61.0.3163.100的单独计算机 .
然而,在最近更新到62.0.3202.62之后,Arial仍然被Times New Roman取代,但粗体和斜体不再起作用 . 试图引用像"Times New Roman Bold"这样的东西不起作用,只是默认返回Arial . 在粗体和斜体src线之后放置 !important
给出了人造粗体和虚假斜体 .
旧的行为是错的吗?如果可能的话,通过CSS替换字体的正确方法是什么?
2 回答
我们不能引用像“Times New Roman Bold”或“Arial Bold”之类的东西,看起来像是Chrome的一个bug,请阅读下文 .
跟踪问题:https://bugs.chromium.org/p/chromium/issues/detail?id=627143,在#25 drott中引用local()的规范 .
Here drott回答原因:
相关提交 .
上一个解决方法:https://chromium-review.googlesource.com/c/chromium/src/+/589270/3/third_party/WebKit/Source/core/css/LocalFontFaceSource.cpp
然后尝试修复Android Chrome上的Google字体问题:https://chromium-review.googlesource.com/c/chromium/src/+/708269/3/third_party/WebKit/Source/core/css/LocalFontFaceSource.cpp
首先,你为什么要那样做?你不能只使用
在身体元素?