uni-app 引入第三方字体
uni-app
支持使用字体图标,使用方式与普通 web
项目相同,需要注意以下几点:
- 支持 base64 格式字体图标。
- 支持网络路径字体图标。
- 小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以base64方式方可使用。
- 网络路径必须加协议头
https
。 - 从 http://www.iconfont.cn 上拷贝的代码,默认是没加协议头的。
- 从 http://www.iconfont.cn 上下载的字体文件,都是同名字体(字体名都叫iconfont,安装字体文件时可以看到),在nvue内使用时需要注意,此字体名重复可能会显示不正常,可以使用工具修改。
- 使用本地路径图标字体需注意:
- 为方便开发者,在字体文件小于 40kb 时,
uni-app
会自动将其转化为 base64 格式; - 字体文件大于等于 40kb,仍转换为 base64 方式使用的话可能有性能问题,如开发者必须使用,则需自己将其转换为 base64 格式使用,或将其挪到服务器上,从网络地址引用;
- 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。
@font-face { font-family: test1-icon; src: url('~@/static/iconfont.ttf'); }
- 为方便开发者,在字体文件小于 40kb 时,
nvue
中不可直接使用css的方式引入字体文件,需要使用以下方式在js内引入。nvue内不支持本地路径引入字体,请使用网络链接或者base64
形式。src
字段的url
的括号内一定要使用单引号。
var domModule = weex.requireModule('dom'); domModule.addRule('fontFace', { 'fontFamily': "fontFamilyName", 'src': "url('https://...')" })
示例:
<template> <view> <view> <text class="test"></text> <text class="test"></text> <text class="test"></text> </view> </view> </template> <style> @font-face { font-family: 'iconfont'; src: url('https://at.alicdn.com/t/font_865816_17gjspmmrkti.ttf') format('truetype'); } .test { font-family: iconfont; margin-left: 20rpx; } </style>
上述为官网的描述
在开发中需要注意:
- 需要注意的是.ttf字体文件需要放置到static文件夹下
- 字体文件若大于40kb,需要将其装换成base64格式
- 在线转换工具base64在线转换
一个中文的字体库,往往几兆十几兆,而我们通常只会使用到其中十几个字体样式,我们可以使用Fontmin把需要用到的字提取出来
成功之后得到一个文件夹,里边有各种格式的字体
字体引入方式:
- 网络路径字体
App.vue引入字体
使用字体:
- base64格式引入