微信小程序引入字体文件+减小体积提高加载速度

1,015 阅读1分钟

1.传统引入方法:

@font-face{
    font-family:'name';//自己起的名字
    src:url('链接').format("woff")//woff是格式
    }

2.通过微信api引入

wx.loadFontFace({
    family: 'alifont',
    source: 'url("https://www.jiandatech.com/test/vape/Alibaba-PuHuiTi-Regular.otf")',
    success: function (e) {
        console.log(e, '动态加载字体成功')
    },
    fail: function (e) {
        console.log(e, '动态加载字体失败')
    }
})

wx.loadFontFace(Object object) | 微信开放文档 (qq.com)

3.若知道只需特定字,可通过抽取子集减小体积

字体子集抽取网站: Online @font-face generator — Transfonter

4.附录:@font-face的format属性

format :字体的格式,主要用于浏览器识别,一般有以下几种——truetype,opentype,truetype-aat,embedded-opentype,avg等。

对于@font-face而言,兼容性问题就是各浏览器所能识别的字体格式不尽相同。

TrueType格式(.ttf)

Windows和Mac上常见的字体格式,是一种原始格式,因此它并没有为网页进行优化处理。

浏览器支持:IE9+,FireFox3.5+,Chrome4.0+,Safari3+,Opera10+,IOS Mobile Safari4.2+

OpenType格式(.otf)

以TrueType为基础,也是一种原始格式,但提供更多的功能。

浏览器支持:FireFox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,IOS Mobile Safari4.2+

Web Open Font格式(.woff)

针对网页进行特殊优化,因此是Web字体中最佳格式,它是一个开放的TrueType/OpenType的压缩版,同时支持元数据包的分离。

浏览器支持:IE9+, FireFox3.5+, Chrome6+, Safari3.6+,Opera11.1+

Embedded Open Type格式(.eot)

IE专用字体格式,可以从TrueType格式创建此格式字体。

浏览器支持:IE4+

SVG格式(.svg)

基于SVG字体渲染的格式。

浏览器支持:Chrome4+, Safari3.1+, Opera10.0+, IOS Mobile Safari3.2+

为解决兼容性问题,一般引入字体如下代码片段所示:

@font-face {
    font-family: ‘YourWebFontName’;
    src: url(‘YourWebFontName.eot’); /* IE9 Compat Modes */
    src: url(‘YourWebFontName.eot?#iefix’) format(‘embedded-opentype’), /* IE6-IE8 */
         url(‘YourWebFontName.woff’) format(‘woff’), /* Modern Browsers */
         url(‘YourWebFontName.ttf’) format(‘truetype’), /* Safari, Android, iOS */
         url(‘YourWebFontName.svg#YourWebFontName’) format(‘svg’); /* Legacy iOS */
}

以上部分内容摘自此