微信小程序中使用iconfont图标

方案一:

利用小程序中不支持 ttf 字体,却支持 base64 的特点,我们可以通过将 ttf 字体转码成 base64 ,再通过 iconfont 的特点,通过设置字体大小和颜色来达到目的。

具体做法:
1.我们可以先去阿里提供的图标库 官网找到我们需要的3个图标, 点击 下载代码 将代码下载到本地~
2.解压我们刚才下载的包,会有以下这些文件,但对于我们来说,会用到的只有 iconfont.cssiconfont.ttf 这两个文件。
3.我们要对 iconfont.ttf 这个文件进行转码,将它转成 base64 格式,刚好 这个网站 就提供了这个功能,按照下图的步骤,分别上传 ttf 文件,选择配置,点击转换。
微信小程序中使用iconfont图标_第1张图片
4.转换完成如下图所示,废话不多说,直接下载下来解压,我们需要的是里面 stylesheet.css 这个文件
5.我们在小程序里的静态资源文件夹里新建一个叫 iconfont.wxss 样式文件,将 上面解压出来的 stylesheet.css 里面的内容全部拷贝到 iconfont.wxss 中,另外,还记得我们上面说的 iconfont.css 吗?这时候就要派上用场了,我们打开 iconfont.css 这个样式文件,将下面的样式,也就是我用红框标注的内容复制到 iconfont.wxss 文件里,注意上面的不需要复制!!
微信小程序中使用iconfont图标_第2张图片到此为止,准备工作算是已经完成了,这时候你的 iconfont.wxss 应该类似下面这样:
微信小程序中使用iconfont图标_第3张图片
6.接着,将我们的字体文件引入到 app.wxss 全局 , 这样你就可以在任何你想用到的地方进行调用了,只需要将 class 写对就没什么问题了
微信小程序中使用iconfont图标_第4张图片
你要换颜色,只要改变对应的 color 就可以了~
微信小程序中使用iconfont图标_第5张图片
方案一缺点:每次要添加或者更改一个图标,整个流程都要重新走一遍…

方案二

第二套方案的思路是借助 svg 矢量图具有不失真和可以自主填充颜色的特点,通过 fill 属性,用户可以自定义填充颜色,但是小程序里面不支持 svg 标签的,我们通过颜色选择器将用户选择好的颜色填充到 svg 里,在通过转码将换过颜色的 svg 转成 base64 编码(在线转换地址)发给小程序,小程序可以直接用在 image 标签中的 src 属性上~

缺点:更改颜色不灵活,每个svg图标都需要转换。

方案三

把SVG代码直接内联在CSS的url()方法中,语法就是data:image/svg+xml;utf8,加上完整的SVG代码即可!例如比较常用的background-image的url()方法,代码如下:

.icon-arrow-down {
    width: 20px; height: 20px;
    background: url('data:image/svg+xml;utf8,') no-repeat center;
    background-size: 100%;
}

改颜色的话直接改 fill="#cdcdcd" 就可以。
缺点:
不支持IE,IE浏览器出于安全考虑,需要对一些字符进行安全转义。参考张鑫旭大神的文章

参考:
https://www.jianshu.com/p/9942ac4e94b5
https://www.zhangxinxu.com/wordpress/2018/08/css-svg-background-image-base64-encode/

你可能感兴趣的:(微信小程序)