我喜歡用WebFontLoader加載字體。這是一個很好的解決方案,對我來說效果很好。我通常異步通過把這樣的事情在我的<head>
頁面使用它:WebFontLoader:爲什麼香草字體系列聲明不足以用於後備?
<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」的意思;字體系列是由一個或多個表達式組成的一種總體類型設計的字體集合,例如「Droid Sans」是一個家族,具有單獨的字體「Droid Sans Regular」,「Droid Sans Bold」,「Droid Sans UltraThin「等。這些都是不同的*字體*(即磁盤上的單個文件),但它們都是單個字體*系列*的一部分。在CSS中,你可以爲瀏覽器的'font-family'屬性列出多個*字體系列,以便「通過」(就像你可以爲單個'@ font-face'的'src'屬性指定多個值一樣) –