這篇文章主要介紹了CSS字體的加載加速問題,主要針對使用CSS中5種通用字體以外的情況,需要的朋友可以參考下除了各種特定字體系列外(如 Times、Verdana、Helvetica 或 Arial),CSS定義了 5 種通用字體系列:
Serif 字體 這些字體成比例,而且有上下短線。如果字體中的所有字符根據其不同大小有不同的寬度,則成該字符是成比例的。例如,小寫 i 和小寫 m 的寬度就不同。上下短線是每個字符筆劃末端的裝飾,比如小寫 l 頂部和底部的短線,或大寫 A 兩條腿底部的短線。Serif 字體的例子包括 Times、Georgia 和 New Century Schoolbook。
# Apache config
<FilesMatch ".(eot|ttf|otf|woff)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
# nginx config
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
add_header Access-Control-Allow-Origin *;
}
Sans-serif 字體 這些字體是成比例的,而且沒有上下短線。Sans-serif 字體的例子包括 Helvetica、Geneva、Verdana、Arial 或 Univers。
Monospace 字體 Monospace 字體並不是成比例的。它們通常用於模擬打字機打出的文本、老式點陣打印機的輸出,甚至更老式的視頻顯示終端。采用這些字體,每個字符的寬度都必須完全相同,所以小寫的 i 和小寫的 m 有相同的寬度。這些字體可能有上下短線,也可能沒有。如果一個字體的字符寬度完全相同,則歸類為 Monospace 字體,而不論是否有上下短線。Monospace 字體的例子包括 Courier、Courier New 和 Andale Mono。
Cursive 字體 這些字體試圖模仿人的手寫體。通常,它們主要由曲線和 Serif 字體中沒有的筆劃裝飾組成。例如,大寫 A 再其左腿底部可能有一個小彎,或者完全由花體部分和小的彎曲部分組成。Cursive 字體的例子包括 Zapf Chancery、Author 和 Comic Sans。
Fantasy 字體 這些字體無法用任何特征來定義,只有一點是確定的,那就是我們無法很容易地將其規劃到任何一種其他的字體系列當中。這樣的字體包括 Western、Woodblock 和 Klingon。
理論上講,用戶安裝的任何字體系列都會落入到上述某種通用系列中,但實際上可能並非如此,不過例外情況(如果有的話)往往很少。
然而,似乎大多數網站使用非默認字體的這些天,但是誰能怪他們呢?系統字體都是很枯燥的,使用自定義字體能為一個網站增色不少。使用自定義字體所帶來的問題就是,會延緩你站點的加載。字體文件比較大,可能需要單獨的字體文件,粗體和斜體,並阻止渲染,如果開發商不解決它們。讓我告訴你一個更快速加載的方法。
1. 把字體放在CDN上
為提高網站的速度,一個簡單的解決方案是使用CDN,這對字體來說沒有什麼差別。重要的是要確保CDN有適當的CORS設置
如果CDN的CORS設置不正確的話,你會看到AJAX/跨域錯誤控制台。
2.使用非阻塞加載CSS
實質上是使用media=none讓我們在浏覽器下載樣式表而不會阻塞渲染,所以當樣式表加載,media設置其所需的設置就會呈現在屏幕
3.單獨的字體選擇器
如果字體使用時沒有被加載完,用戶將看到空白,直到字體加載。這,當然不是一件好事,如果字體加載失敗。最起碼,用戶將會在空白的地方盯著幾秒鐘。最好是配合被添加到body的字體加載後聲明自定義字體:CSS Code
復制內容到剪貼板通過使用字體聲明以上策略,系統加載字體最初只有在自定義加載字體將被啟用,因此屏幕不會顯示任何一段時間空內容。我建議創建一個Stylus/Sass/Less的混合設置字體設置,自定義選擇器自動設置。
以上就是我們給大家介紹的CSS字體的加載加速問題了,希望大家繼續關注我們的網站!