uni-app 引入第三方字体

uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:

  • 支持 base64 格式字体图标。
  • 支持网络路径字体图标。
  • 小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以base64方式方可使用。
  • 网络路径必须加协议头 https
  • http://www.iconfont.cn 上拷贝的代码,默认是没加协议头的。
  • http://www.iconfont.cn 上下载的字体文件,都是同名字体(字体名都叫iconfont,安装字体文件时可以看到),在nvue内使用时需要注意,此字体名重复可能会显示不正常,可以使用工具修改。
  • 使用本地路径图标字体需注意:
    1. 为方便开发者,在字体文件小于 40kb 时,uni-app 会自动将其转化为 base64 格式;
    2. 字体文件大于等于 40kb,仍转换为 base64 方式使用的话可能有性能问题,如开发者必须使用,则需自己将其转换为 base64 格式使用,或将其挪到服务器上,从网络地址引用;
    3. 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。
       @font-face {
           font-family: test1-icon;
           src: url('~@/static/iconfont.ttf');
       }
      
       

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>

 

上述为官网的描述

 

在开发中需要注意:

  1.  需要注意的是.ttf字体文件需要放置到static文件夹下
  2. 字体文件若大于40kb,需要将其装换成base64格式
  3. 在线转换工具base64在线转换
一个中文的字体库,往往几兆十几兆,而我们通常只会使用到其中十几个字体样式,我们可以使用Fontmin把需要用到的字提取出来

 

成功之后得到一个文件夹,里边有各种格式的字体

 

 

 字体引入方式:

  • 网络路径字体

 

App.vue引入字体

 

 

 

使用字体:

 

 

  • base64格式引入

 

 

 

 

 

 

 

 

 

 

 

 

 

 
posted @ 2021-12-08 22:29  编程民工  阅读(2575)  评论(0编辑  收藏  举报