我喜欢使用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 的内容,而我看到的大多数示例(这里有一篇关于它的文章)都做了类似的事情,使用 WFL 应用于<html>
元素的类来检测字体是否已加载并准备好利用:
h1 {
font-family: Helvetica, Arial, sans-serif;
.wf-active & {
font-family: 'Droid Sans', Helvetica, Arial, sans-serif;
}
}
我的问题是:为什么声明带有系统备份的普通字体堆栈还不够?font- family的重点不是如果第一个不被识别,它会自动回退到其他的吗?
如果浏览器发现堆栈中的第一个字体不是系统字体,它是否会默认隐藏该元素,尽管有备份 - 或类似的东西?