缺點:
使用外部字體硼端,英文還好,只有26個字母寓搬,所以字體文件也不大(一個頂多就幾百k)珍昨,但是現(xiàn)在瀏覽器很多,字體文件也不是通用句喷,所以要兼容大部分瀏覽器就需要好幾個字體文件镣典。但是使用中文字體文件的話就問題大了,中文字體庫唾琼,大概有9萬個漢字(少也有2到3萬)兄春,一個字體文件就幾m了,還要兼容锡溯,那么就是幾十m赶舆。渲染動態(tài)數(shù)據(jù)還是不要使用第三方字體:
若要想用外部文件適配所有的中文字體(對于動態(tài)數(shù)據(jù),漢字不是固定的)祭饭,就不要使用外部字體文件涌乳,會很大大降低網(wǎng)頁加載速度,有多慢甜癞?我試過就只加載個字體文件就4s夕晓,總用時9s多,如果用字體文件做字體圖標(biāo)倒是可以使用悠咱,這也是值得提倡蒸辆,這樣的話連精靈圖都不用,減少請求數(shù)析既。折中優(yōu)化
- 非要使用的話躬贡,優(yōu)化的辦法是:使用cdn(但是也是優(yōu)化不大,可以說是沒有用)眼坏;
- 對于動態(tài)數(shù)據(jù)(未知數(shù)據(jù))拂玻,不使用第三方字體渲染,而改用系統(tǒng)字體,只對已知數(shù)據(jù)使用第三方字體渲染檐蚜,然后將字體文件中不使用的文字全部刪除魄懂,達(dá)到極大壓縮字體文件的效果(10m壓縮成幾十k[手動滑稽])
font-family: 'slHeiTi','Microsoft Yahei','arial','Arial Narrow','HELVETICA','Tahoma';
// 第一個是第三方字體
壓縮字體的工具:“字蛛“
0)“字蛛“的原理
字蛛通過分析本地 CSS 與 HTML 文件獲取 WebFont 中沒有使用的字符,并將這些字符數(shù)據(jù)從字體中刪除以實現(xiàn)壓縮闯第,并生成跨瀏覽器使用的格式市栗。
官網(wǎng):http://font-spider.org/#use
1)字蛛安裝
//需要node環(huán)境,沒有node環(huán)境咳短,先去安裝
npm install -g font-spider //全局安裝
//可以不-g安裝填帽,而是直接安裝在你的項目下
2)構(gòu)建文件,為壓縮做準(zhǔn)備
貼一下項目結(jié)構(gòu):
PS:不是一定要php文件
新建個css文件咙好,在里面用@font引入字體文件:
@font-face {
font-family: 'KhmerUI';
src: url('./fonts/khmer_ui/khmerui-0.eot');
src: url('./fonts/khmer_ui/khmerui-0.eot?#iefix') format('embedded-opentype'),
url('./fonts/khmer_ui/khmerui-0.woff') format('woff'),
url('./fonts/khmer_ui/khmerui-0.ttf') format('truetype'),
url('./fonts/khmer_ui/khmerui-0.svg#svgFontName') format('svg');
}
@font-face {
font-family: 'slHeiTi';
src: url('./fonts/slHeiTi/SourceHanSansCN-Regular.eot');
src: url('./fonts/slHeiTi/SourceHanSansCN-Regular.eot?#iefix') format('embedded-opentype'),
url('./fonts/slHeiTi/SourceHanSansCN-Regular.woff') format('woff'),
url('./fonts/slHeiTi/SourceHanSansCN-Regular.ttf') format('truetype'),
url('./fonts/slHeiTi/SourceHanSansCN-Regular.svg#svgFontName') format('svg');
}
h1{ font-family: 'KhmerUI'; }
div{ font-family: 'slHeiTi'; }
然后就是在html/php/jsp/ejs/while(1){“..."}/文件中引入(link)以上的css文件篡腌。
PS:我的項目是做了國際化的,文字都是放在數(shù)組里面勾效,所以哀蘑,分析html文件是分析不到我需要的字體的,我需要的字體都在語言包里面葵第,所以我直接新建一個項目分析語言包的字體绘迁。如果沒有做類似我這樣的國際化,可以直接省略這一步卒密。
3)壓縮字體文件:
```
font-spider ./demo/.html //你項目的路徑
//比如缀台,我的項目:
//font-spider ~/workspace/php/font/.php