解决uniapp使用阿里巴巴矢量图库,在移动端不显示的问题

avatar
作者
猴君
阅读量:0

在使用阿里巴巴矢量图库制作icon字体图标时,发现H5端能正常显示,而运行在手机上却不显示图标,找了好几个办法终于发现了原因:

  • 在ttf字体文件小于 40kb 时,uni-app 会自动将其转化为 base64 格式;大于则需要自己转好文件为base64使用
  • 使用方法如下:
  • 1.将阿里巴巴图库icon下载至本地,得到iconfont.cssiconfont.ttf两个文件;将iconfont.css放入static下自己新建的font文件夹
  • 2.将iconfont.ttf文件转成base64

转ttf的网址:/zb_users/upload/2024/csdn/www.giftofspeed.com/base64-encoder/

  • 3.将得到的base64放入iconfont.css 中并修改成如下,仅需要改src部分,不要全照搬!!!
@font-face {   font-family: "iconfont"; /* Project id 4572225 */   /* src: url('./static/font/iconfont.ttf') format('truetype'); 方法一不显示  	url('https//at.alicdn.com/t/c/font_4572225_rsnmkumllk.ttf?t=1722246508943') format('truetype');方法二,可行,  	但是阿里巴巴图库提示【在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用  	并做好备份】;所以不推荐  */   src:   /* 不显示原因:在字体文件小于 40kb 时,uni-app 会自动将其转化为 base64 格式;大于需要自己转好文件使用 */    /* 如果使用小于40kb还是不显示,全局引用的iconfont.css可能与阿里巴巴矢量图库的CSS文件中一些全局定义的样式,    导致组件或页面之间相互干扰,使用转base64也能解决该问题 */   /* 方法三:.ttf文件转化为 base64 格式,转ttf的网址/zb_users/upload/2024/csdn/www.giftofspeed.com/base64-encoder/ */   url('data:font/truetype;charset=utf-8;base64,得到的base64编码') format('truetype'); }  .iconfont {   font-family: "iconfont" !important;   font-size: 16px;   font-style: normal;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }  .icon-weixin:before {   content: "\e6ea";   font-size: 20px;   margin:0 10rpx;   color: #4cbf00; } 
  • 4.在App.vue页面导入全局使用
<style lang="scss"> /*每个页面公共css */ @import "@/static/font/iconfont.css"; page {   height: 100%; } </style> 
  • 5.在需要的页面使用图标
 <view class="iconfont icon-weixin"></view> 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!