在微信小程序中使用阿里巴巴矢量字体图标库

时间:2024-02-24 21:18:13

为啥要使用第三方图标库

微信小程序自带的icon组件默认只有9种类型的图标。在开发过程中,这个是肯定不够用的。也可以自己用css绘制图标,就是有点浪费时间。前端可以直接使用阿里巴巴矢量图标库。对于普通的网页,H5页面开发按照阿里巴巴矢量图标库的文档使用就行了。不过在微信小程序里应该如何使用是个问题,因为微信小程序不支持html标签。

下载阿里矢量图标

在阿里矢量图标库网站上挑选需要的图标,加入项目,然后下载。

使用font-class方式在微信小程序引入图标

下载后会得到一个zip格式的压缩包,把压缩包解压,然后按图示的步骤引入对应文件:

  • 把下载文件中的 iconfont.css css文件里的内容复制到 app.wxss 文件中作为全局样式。对应步骤1和步骤2

  • 步骤3中的内容就是从 iconfont.css css文件中复制来的内容

  • 步骤4和5是配置是配置字体文件,为什么要放在本地,一个是不想使用阿里的cdn,第二个原因可以参考 @font-face的跨域问题

  • 步骤5是配置全局字体图标的大小

在微信小程序中使用font-class方式引入的图标

font-class方式引入的图标,缺点是只支持单色,不支持多色图标,这个时候就可以考虑使用svg的方式引入图标了

下注SVG格式的图标

在微信中使用svg格式的图标,本质上和使用图片是一样的,为啥不使用图片,具体可以参考:矢量图和位图的区别

将SVG格式的图标转换成base64

网上有很多图片转base64的工具。百度谷歌下就有

在微信小程序中使用svg转换的base64格式

步骤一设置svg图标的默认大小,步骤二通过css的 background-image:url("") 来使用图标。

为啥不直接在使用svg文件,要转成base64文件

第一:因为微信小程序不支持 svg 标签

第二:为啥不能在css中直接引入svg文件。因为要报错,微信只支持网络图片和base64

参考

使用的矢量图标:https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.dc64b3430&cid=18579

阿里巴巴矢量图标库:https://www.iconfont.cn/

微信icon:https://developers.weixin.qq.com/miniprogram/dev/component/icon.html

矢量图和位图的区别:https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web

@font-face的跨域问题:https://developer.mozilla.org/zh-CN/docs/Web/CSS/@font-face#%E6%B3%A8%E6%84%8F