首页 > 编程语言 >微信小程序加载第三方字体

微信小程序加载第三方字体

时间:2023-04-21 09:35:03浏览次数:43  
标签:format url 微信 字体 格式 font 加载

一、加载本地字体

做小程序项目时,有时为了提升页面展示效果,会引入一些第三方字体,引入方式如下代码片段

/*直接在app.css引入 */
@font-face {
    font-family: "alifont"; // 是你封装的名字
    src: url('./static/css/subset-AlibabaPuHuiTiR.ttf') format('truetype'); // 你字体包的位置
}

而常规字体文件比较大(例如以上阿里巴巴普惠字体--Alibaba-PuHuiTi-Regular.otf,字体文件大小6.9M),小程序的包大小又有2M的限制,引入本地字体会超包。

二、加载外部字体

@font-face {
    font-family:'alifont';
    src:url('https://www.jiandatech.com/test/vape/Alibaba-PuHuiTi-Regular.otf') format('opentype');
}

或者

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, '动态加载字体失败')
    }
})

缺点:加载会很慢,会有明显的默认字体切换到外部字体的过程,体验较差,特别是字体文件越大,加载的速度越慢,有些小程序页面甚至无法加载成功。

三、简化字体文件后再本地引入

针对1和2的问题,我们可以对字体进行抽取,抽出页面中需要用到的字,文字抽取工具Transfonter,如下图所示操作

抽取后字体文件就从原来的6.9M变成了9k,然后就可以采用本地文件引入的方式加载第三方字体,有比较好的交互体验。

附:

@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 */
}

标签:format,url,微信,字体,格式,font,加载
From: https://www.cnblogs.com/ZerlinM/p/17339156.html

相关文章

  • pyinstaller 打包时第三方模块与图片资源加载
    打包命令pyinstaller--onefile--windowed**.py 修改**.spec文件pathex=['/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ddddocr'],datas=[('./images','images'),('/Library/Frameworks/Python.fram......
  • 微信小程序开发笔记 基础篇③——自定义数据dataset,事件触发携带额外信息
    文章目录一、前言二、视频演示三、原理和流程四、注意事项五、全部源码六、参考一、前言微信小程序开发笔记——导读想要实现一个电费充值界面。多个不同金额的充值按钮,每个按钮都携带自定义数据(金额)点击不同金额的充值按钮,就会上传对应的数据(金额)。所以,本文主要使用到了微信小程......
  • 微信小程序使用canvas2d实现拼图游戏
    根据周文洁微信小程序开发实战编写,但是微信更新了canvas接口,按照书上写的已经不能使用了。目录 改进后如下:app.wxss:1.container{2height:100vh;3color:#E64340;4font-weight:bold;5display:flex;6flex-direction:column;7align-i......
  • eclipse字体更改
    代码编辑界面默认颜色为白色。对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些。设置方法如下:1、打开window/Preference,弹出Preference面板2、展开General标签,选中Editors选项,展开。3、选中TextEditors,右边出现TestEdito......
  • ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载H264视频流
    前言:RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载H264数据流。说明:(1)大华IPC摄像头作为服......
  • ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载AAC音频流
    前言:RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力,这里将它们独立出来实现,以便更好的理解协议。本文主要介绍RTSP,RTCP,RTP加载AAC音频流。说明:(1)大华IPC摄像头作为服......
  • 微信Windows版 v3.9.0.28 多开&消息防撤回正式版绿色版
    微信,大家工作中生活中用的最多的一款应用;很多公司喜欢用微信来作为工作沟通的工具,官方原版只支持登陆一个微信,这对于需要在电脑上登陆多个微信账号的朋友来说肯定是极其的不方便。另外有的时候别人撤回了一些重要消息,会导致我们错失部分重要内容。而这个绿色特别版本就 支持多开,......
  • tomcat启动时,加载类
    有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法。可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置......
  • python操作pptx设置title字体大小插入全屏图片A4尺寸实例一枚
    pipinstallpython-pptx安装好pptx,设置标题最大的作用是ppt里面的摘要视图显示摘要文字参考:https://python-pptx.readthedocs.io/en/latest/ frompptximportPresentationfrompptx.utilimportCmpwidth,pheight=Cm(29.7),Cm(21)#A4大小297*210left=top=0prs=......
  • 微信小程序隐藏页面滚动条
    开发小程序时,经常会碰到页面长度超过屏幕高度,然后下拉时会出现滚动条,对于一些有强迫症的人来说是不可忍受的。网上看了好多,写的。都评论有起作用或者不起作用的。我在这分享一个全局隐藏滚动条的方式。样式代码我们在app.wxss中,写一个类选择器: .contain{height:100vh;......