重要背景说明

官网iconfont的引入方式有三种分别为:UnicodeFont classSymbol
其中已明确说明 Unicode、Font class 这两种引入方式 不支持多色



单色如何理解呐?具体请看效果对比图(左图为UI上传的图标样式,右边为我们使用这两种方式引入后不加任何样式的效果)

是不是很丑?
另外,如果各位小伙伴公司的UI提供的图标大多数为多色图标,如图所示,那我们怎么办呐?

只能选用Symbol方式引入。


但,
哎妈呀,巧就巧在小程序它不支持Symbol方式的引入。
不信?
试试引入喽,控制台大大的“红色报错”等着你哦~


基于以上背景调研的情况,
那么我们究竟该如何在小程序中使用iconfont呐?咱们直接上代码!

一:Unicode

1.新建一个css文件

@font-face {font-family: 'iconfont';  /* project id 3067819 */src: url('//at.alicdn.com/t/xxx.eot');src: url('//at.alicdn.com/t/xxx.eot?#iefix') format('embedded-opentype'),url('//at.alicdn.com/t/xxx.woff2') format('woff2'),url('//at.alicdn.com/t/xxx.woff') format('woff'),url('//at.alicdn.com/t/xx.ttf') format('truetype'),url('//at.alicdn.com/t/xxx.svg#iconfont') format('svg');
}.iconfont {font-family: "iconfont" !important;font-size: 14px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}

2.在App.vue文件中,引入上边的css文件

@import './static/iconfont.css';

3.随后就可以在页面中使用它了

<text class="iconfont">&#x68;</text>

二:Font class

1.拷贝项目下面生成的fontclass代码://at.alicdn.com/t/xxx.css,
2.粘贴到浏览器中,可以看到该链接请求到一些资源代码,复制它们,
3.回到自己的项目中去,新建一个css文件,并将第2步中请求到的资源代码,粘贴到该文件

至此,三步就可以拿到所有UI小伙伴上传的所有iconfont图标了,并且此时新建的css文件具体是长这样:

PS:细心地你会发现,此时的这个css资源文件比Unicode中的css文件,多了下边的这些行代码。

4.在App.vue文件中,引入上边的css文件

@import './static/iconfont.css';

5.在页面中使用

<i class="iconfont icon-xxx"></i>

至此,iconfont的前两种方式就引入成功,并且可以使用了。

总结:这两种引入方式大同小异。
Unicode 的css文件比较简洁,在页面中使用时要实时关注iconfont上的图标代码。
Font class 的css文件是无脑式的复制粘贴式代码集合,在页面中使用时更具有语义化。例如:icon-ren就知道是个人的图标,icon-duigou就知道是个勾选图标,icon-phone、icon-password等等,我们在开发过程中不用去每个查看过去就知道该用什么(当然前提是已于自己的UI小伙伴沟通好了命名规则哦~~)

多说一句

以上两种方式的引入,对于单色和双色图标又有什么样的影响呐?我们具体根据贴图来看:

  1. 单色图标:

    需要我们可以加上一个color样式修饰,才能够达到UI的图标效果
color:#d1dfec

效果图如图所示:

2.多色图标

如果按照单色图标的修饰方式,我们给加上color样式

形成的效果图显然不是我们想要的!
那么,
最,最,具有前景式的多色图标Symbol出场了…

三:Symbol

上边也交代了说小程序是不支持Symbol的引入方式的,因此我们要用到一个工具库 iconfont-tools

具体操作步骤如下(保姆级图片式教学):
1.登录iconfont找到项目资源目录,点击“下载至本地”,并解压下载的压缩包文件。
ps:随便你电脑上的任何地方

2.进入到解压后的文件夹中,打开黑窗口,执行命令行安装iconfont-tools工具,如图所示:

3.已经安装了iconfont-tools工具了,那么我们现在就要开始使用它了。它可以帮助我们生成一个css文件,这个css文件里边包含了我们所有的图标。

4.查看生成的iconfont-weapp文件,并且将iconfont.css文件拖到我们的项目目录下,如果使用预处理器,可手动将该文件后缀更改为scss/sass

5.在App.vue文件中,引入上边的css文件

@import './static/iconfont.css';

6.在页面中使用

<text class="icon icon-xxx"></text>

至此,借助工具iconfont-tools以Symbol的方式引入iconfont就大功告成了!效果图如下:

分析

上述黑窗口中的设置项,这里统一做一下解释:

(1)设置输出文件夹名称:设置使用工具后,会自动生成一个文件夹,这里设置的是生成的文件夹的名称,默认是iconfont-weapp;
(2)设置输出文件css文件名称:生成的文件夹iconfont-weapp下,包含的一个css文件,这个文件是我们最终要使用的文件,是要拖到项目中去的。这里去设置这个css文件的名称,默认是iconfont-weapp-icon;
(3)设置css文件的prefix:即设置使用时的class类名,默认是t-icon;
(4)设置字体大小:设置图标的默认大小font-size,默认是16px;
(5)是否生产小程序原生组件:实践后发现无论选择true或者false,iconfont-weapp文件夹内的内容不会发生变化。因此这里的选择个人认为都ok,不会影响最终使用。默认是true

如果无特别想自定义的话,均可enter下去。
这里我进行了自定义将文件名设置为iconfont,类名设置为了icon,生成的css文件如图所示:

其实,我们可以理解为这个工具是帮我们把图标转成了base64格式,
然后,我们在使用图标的时候其实是给标签加了一个background属性,
所以,才呈现出了多色图的效果!!

happy end

uni-app小程序引入iconfont的三种方式详解(无需下载文件到项目)相关推荐

  1. 小程序引入icon的三种方式

    小程序引入icon的三种方式(原生图标.WeUI图标组件.iconfont图标) 原生图标 小程序里原生图标是通过icon标签来引入的: <icon type="success&quo ...

  2. 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...

    原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...

  3. mysql 删除数据表中数据_Mysql-删除数据表-三种方式详解

    Mysql 删除数据表的三种方式详解 用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, ...

  4. 【Linux】部署Springboot项目到Linux服务器以及linux服务器下载文件的三种方式详解

    Linux学习之路 初识Linux Linux内核 由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写 Linux 是一套免费使用和自由传播的类Unix操作系 ...

  5. 小程序可通过这三种方式去做竞品分析

    随着互联网+小程序的深入和技术的革新,互联网行业早已不是纯互联网产品的行业了,我们的竞争对手也不仅限于同行,因此竞品分析的视野也要放大到各行各业.那么竞品的分类有哪些?我们应该如何去选择? 1. 直接 ...

  6. 微信小程序页面跳转三种方式

    为了不让用户在使用小程序时造成困扰,微信小程序规定页面路径只能是五层,请尽量避免多层级的交互方式. 页面跳转的话就涉及到了多个页面层级 第一种:wx.navigateTo(OBJECT) 保留当前页面 ...

  7. 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP

    在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式. 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图. 从3张图里我们看到了几点 ...

  8. 【REACT NATIVE 系列教程之四】刷新组件RENDER(重新渲染)的三种方式详解

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2242.html ...

  9. 删除mysql表_Mysql 删除数据表的三种方式详解

    用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除程度可从强到 ...

最新文章

  1. 虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通
  2. 不要在桌面保存长期修改的文件否则系统挂了时候面临文件丢失的问题,长期总结面试资料(公司 题目 地址 氛围 加班情况 薪资情况)毁于一旦
  3. python 添加环境变量_python永久添加环境变量
  4. 20-思科防火墙:Network Static NAT:网络静态NAT
  5. 【Flutter】打开第三方 Flutter 项目
  6. [BZOJ1925]地精部落
  7. 通过什么来衡量C# Socket服务的效能
  8. linux下varnish4配置语法(基础)
  9. bytebuffer怎么转成string_002.ABB机器人高级编程--String飞升篇
  10. postgresql编译安装
  11. esb接口测试_接口测试用例.docx
  12. C#_delegate - 值参数和引用参数
  13. 【笔记】c c++如何打印变量地址
  14. QCC3020开发问题汇总(更新中。。。)
  15. r语言跟python哪个适合数据分析_R语言 vs Python对比:数据分析哪家强?
  16. 计算机基础达 打字训练视频,「跟着八戒学电脑」快速打字必须掌握的基本功:指法练习...
  17. 【Unity2D】制作游戏主菜单MainMenu
  18. 微表情如何用计算机分析计算,基于差分定位与光流特征提取的微表情识别 - 计算机应用与软件.pdf...
  19. 机器人设计必备的软件有哪些
  20. 轻松读书——麦肯锡教我的写作武器

热门文章

  1. 实现CentOS/Ubuntu server上任务栏固定到桌面下方 - 收藏夹一直显示 - 任务栏在哪里 - 任务栏怎么弹出
  2. 有限合伙企业与普通合伙的区别
  3. 各种好用的在线时钟、网页时钟汇总推荐集合
  4. eclipse jee 设置字体大小
  5. 流媒体领域行不通的“沃尔玛模式”,正在入侵云游戏
  6. 运动无线蓝牙耳机哪款好用呢?适合跑步场景蓝牙耳机
  7. Windows命令:whoami
  8. EasyGBS国标平台新增WebSocket消息推送,可快速定位视频播放故障
  9. (附源码)计算机毕业设计ssm基于博客系统的UI手机界面展示
  10. .exe文件默认打开方式被修改后,所有exe文件全部无效的解决方法