【发布时间】:2017-02-09 12:31:19
【问题描述】:
我喜欢使用WebFontLoader 来加载字体。这是一个快速的解决方案,对我来说效果很好。我通常通过在我的页面<head> 中添加类似这样的内容来异步使用它:
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js" async></script>
WebFontConfig = {
google: {
families: ['Droid Sans', 'Droid Serif']
}
};
然后,在我的 CSS 中,我会做这样的事情:
h1 {
font-family: 'Droid Sans', Helvetica, Arial, sans-serif;
}
不过,我最近一直在阅读有关 WebFontLoader 的文章,而我看到的大多数示例(这里有一个 article 是关于它的)都使用 WFL 应用于 <html> 元素的类来检测字体是否已加载并准备好使用:
h1 {
font-family: Helvetica, Arial, sans-serif;
.wf-active & {
font-family: 'Droid Sans', Helvetica, Arial, sans-serif;
}
}
我的问题是:为什么声明带有系统备份的普通字体堆栈还不够? font-family 的重点不是这样,如果第一个不被识别,它会自动回退到其他的吗?
如果浏览器发现堆栈中的第一个字体不是系统字体,它是否会默认隐藏该元素,尽管有备份 - 或类似的东西?
【问题讨论】:
-
这不是“font-family”的意思;字体系列是由一种或多种字体设计的一个或多个表达式组成的字体集合,例如“Droid Sans”是一个系列,具有单独的字体“Droid Sans Regular”、“Droid Sans Bold”、“Droid Sans UltraThin”等。这些都是不同的字体(即磁盘上的单个文件),但它们都是单一字体系列的一部分。在 CSS 中,您可以为
font-family属性列出 多个 字体系列以使浏览器“通过”(就像您可以为单个@font-face的src属性指定多个值一样)
标签: css fonts webfonts webfont-loader