前端 - css自定義字體
問題描述
是這樣的,今天設計稿上用到一種特殊字體,設計師給了我字體的.ttf文件,但是有5MB多,這么大,怎么使用,另外如何保證兼容性,
ps: 是在移動端的前端開發
另外:是這樣的,用到特殊字體的字一部分是不確定的,來源于用戶表單的輸入,,因此,答案里很多方法好像用不上,
問題解答
回答1:如果你們頁面用到的文字不多的話,可以考慮試一下:http://font-spider.orgfont-face 的支持在移動設備上兼容性基本沒什么問題,可以放心使用:http://caniuse.com/#search=fo...如果內容字體很多的話,打出來的字體包還是很大的話,建議讓設計師更換,不然就是坑用戶。
回答2:如果只是少數幾個字,可以用一些工具把這些字單獨提取出來做一個字體。
回答3:移動端沒什么兼容問題,見下圖
CSS3 自定義字體使用方式
/* 定義字體,客戶端會主動下載服務器的字體文件 */@font-face{ font-family: ’自定義字體名稱’; src: url(’字體文件路徑’);}/* 使用字體 */body{ font-family: ’你定義字體名稱’; font-size: 65%;}
5M 的字體確實太大了,而且是移動端簡直要死人了,不僅加載慢而且特費流量問問你們設計能不能壓縮大小,一般保持 1M 以下
回答4:移動端的話,真沒必要引用那么大的字體,一般Arial 微軟雅黑就可以了。以前設計師也弄個超大的字體文件讓我引用,我用了一次,就不用了,一個字體比我整體文件還大,得不償失。
回答5:1、用到的地方不多的話就使用圖片代替2、如果用的地方比較多建議使用在線字體網站,例如有字庫
回答6:可以使用百度的fontmin工具如果使用gulp,可以按這個https://www.npmjs.com/package...寫個任務比如
//直接提取你需要的字體gulp.task(’fontmin’, function () { return gulp.src(fontpath).pipe(fontmin({ text: ’your text’})).pipe(gulp.dest(destpath));});//提取html中需要被提取的字體,不過這里fontmin應該是提取了body里用到的文字,//然后將所有文字匹配,所以會有不相關的字體也被提取,所以,感覺還是上面的方法比較常用function minifyFont(text, cb) { gulp.src(somepath).pipe(fontmin({ text: text})).pipe(gulp.dest(somepath)).on(’end’, cb);}gulp.task(’fonts’, function (cb) { var buffers = []; gulp.src([’xx.html’, ’yy.html’]).on(’data’, function (file) { buffers.push(file.contents);}).on(’end’, function () { var text = Buffer.concat(buffers).toString(’utf-8’); minifyFont(text, cb);});});
如果不需要頻繁更改,還有可視化工具http://fontmin.forsigner.com/
兼容性問題樓上已經caniuse截圖
相關文章:
1. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處2. 圖片鏈接的地址怎么獲得的3. python - 我在使用pip install -r requirements.txt下載時,為什么部分能下載,部分不能下載4. mysql - 如何減少使用或者不用LEFT JOIN查詢?5. mysql - jdbc的問題6. mysql - eclispe無法打開數據庫連接7. mysql 5個left關鍵 然后再用搜索條件 幾千條數據就會卡,如何解決呢8. 視頻文件不能播放,怎么辦?9. mysql - 千萬級數據的表,添加unique約束,insert會不會很慢?10. html5 - H5 audio 微信端 在IOS上不能播放音樂
