iconfont的使用(最详解)

目录

一、Iconfont是什么?

二、Iconfont如何使用

1.官网注册 

2.新建项目

3.项目中使用

Unicode方式

Font class方式

Symbol方式

三、总结


 我的博客原文:https://code-nav.top/article/1050

一、Iconfont是什么?

iconfont是阿里旗下的一套图标库,UI设计师设计号图标后,会将图标上传到iconfont的项目库中。前端开发人员需要下载项目图标,并在项目中使用。它的原理就是将很多 icon 做成字体库,通过样式或者字体对应的字符集来显示这个 icon。

二、Iconfont如何使用

1.官网注册 

 iconfont-阿里巴巴矢量图标库

如果你没有账号可以使用手机号注册,当然你也可以 使用三方账号登录,支持github,新浪和微信登录。

2.新建项目

 点击进入资源管理》我的项目 

然后点击右上角加号新建项目,填写项目名称等信息,字体格式根据自己需求点击选择。

新建成功后,我们来给项目添加一些我们需要的图标,去页面顶部搜索自己需要的图标,

你可以选择直接下载图片使用,根据自己需要的颜色大小调整。但是推荐点击添加入库,然后点击右上角购物车图标添加到我们刚才使用的项目。

这样我们在库里就有了这两个图标。

3.项目中使用

ifonfont 可以让我们使用三种方式引入,分别是unicode,font class,symbol,我们点击不同的方式获取代码。下面我说下这三种具体怎么使用。

首先我们将我们字体库下载到本地

我们将这些文件放在项目一个文件夹中,我们只需要以下这些文件

 我们需要将iconfont.css引入到我们的项目中。

第一种:Unicode方式

unicode是字体在网页端最原始的应用方式,我们直接在图标上复制对应的代码即可

<link rel="stylesheet" href="./iconfont/iconfont.css">
<body>
  <i class="iconfont">&#xe642;</i>
</body>

如果你用的是vue,那么你需要在main.ts中引入iconfont.css,其他框架大同小异

import { createApp } from 'vue'
import App from './App.vue'
import '../assets/iconfont/iconfont.css';
app.mount('#app')

unicode特点:

(1)兼容性最好,支持ie6+,及所有现代浏览器。

(2)支持按字体的方式去动态调整图标大小,颜色等等。

(3)但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。

第二种:Font class方式

font-class是unicode的方式的变种,主要是解决unicode书写不直观,语意不明确的问题。

和unicode一样,我们直接在图标上复制对应的代码即可

<link rel="stylesheet" href="./iconfont/iconfont.css">
<body>
  <i class="iconfont icon-dingwei1"></i>
</body>

与Unicode使用方式相比,具有以下特点

(1)兼容性好,支持IE8+,以及所有现代浏览器

(2)相比于Unicode语意明确,书写更直观

(3)替换图标时,使用class定义图标,所以替换时只需要修改class里面的Unicode引用

(4)本质上还是使用的字体,所以多色图标是不支持的

第三种:Symbol方式

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。

我们直接在图标上复制对应的代码即可

<script src="./iconfont/iconfont.js"></script>
<body>
  <svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-dingwei1"></use>
  </svg>
</body>

如果你用的是vue,那么你需要在main.ts中引入iconfont.js,其他框架大同小异

import { createApp } from 'vue'
import App from './App.vue'
import '../assets/iconfont/iconfont.js';
app.mount('#app')

这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

(1)支持多色图标了,不再受单色限制。

(2)通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。

(3)兼容性较差,支持 IE9+,及现代浏览器。

(4)浏览器渲染 SVG 的性能一般,还不如 png。

三、总结

当然我们也可以在线使用这些图标,我们只需复制在线的链接到项目中,模板中的用法和离线是一样的,不建议我们在线使用,稳定性不保证

今天就分享到这里啦!欢迎在评论区交流。如果文章对你有所帮助,❤️关注+点赞❤️鼓励一下博主会持续更新。。。。

往期回顾

 css实现元素居中的6种方法 

Angular8升级至Angular13遇到的问题

前端vscode必备插件(强烈推荐)

Webpack性能优化

vite构建如何兼容低版本浏览器

前端性能优化9大策略(面试一网打尽)!

vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 vite构建打包性能优化

 vue3.x使用prerender-spa-plugin预渲染达到SEO优化

 ES6实用的技巧和方法有哪些?

 css超出部分显示省略号

vue3使用i18n 实现国际化

vue3中使用prismjs或者highlight.js实现代码高亮

什么是 XSS 攻击?什么是 CSRF?什么是点击劫持?如何防御

### 如何在 Vue 项目中使用 Iconfont #### 方法一:通过类名的方式引入 Iconfont 可以通过 `<span>` 或者 `<i>` 标签来加载图标,这种方式简单易用。例如: ```html <span class="iconfont icon-user"></span> <i class="iconfont icon-fangdajing"></i> <!-- 参考自 [^4] --> ``` 上述代码展示了两种标签形式的实现方式,其中 `class` 属性中的值来源于 Iconfont 官网提供的字体名称。 --- #### 方法二:全局引入 Iconfont 字体文件 为了使整个项目都能访问到这些图标,可以在项目的入口文件或者公共样式文件中引入 Iconfont 提供的 CSS 文件链接或 JS 脚本。以下是具体的实现步骤: 1. **获取远程脚本路径** 登录 Iconfont 并创建自己的图标的在线存储库后,可以找到对应的 URL 地址。将其嵌入 HTML 中: ```html <script src="http://at.alicdn.com/t/c/font_4201929_le51yk6y1o.js"></script> <!-- 来源 [^5] --> ``` 2. **确保样式生效** 如果采用的是本地开发环境(如 Vite 或 Webpack),则需确认网络请求能够正常解析该资源。 --- #### 方法三:按需加载单个图标 对于性能敏感的应用场景来说,推荐仅导入实际需要用到的部分而不是全部内容。这通常涉及以下几个方面的工作流程: - 创建单独的 Symbol Sprite 图片集合; - 利用 JavaScript 动态渲染所需节点; 示例代码如下所示: ```javascript import { createApp } from 'vue'; const app = createApp({}); // 假设已定义好对应关系表 function loadSvgIcon(name, callback) { const xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { document.body.insertAdjacentHTML('beforeend', xhr.responseText); typeof callback === 'function' && callback(); } }; xhr.open('GET', `/path/to/${name}.svg`, true); // 替换为真实服务器地址 xhr.send(null); } loadSvgIcon('user'); // 加载名为 user 的 svg 文件 ``` 此片段说明了如何利用 AJAX 技术异步抓取指定图形并注入 DOM 结构之中[^2]。 --- #### 特殊情况处理——与 Ant Design Vue 集成 当框架升级至较新版本时,可能会遇到兼容性问题。比如 Ant Design Vue 自 v1.2.0 开始改用了 SVG 方案替代原有的 Font 类型,则需要调整原有逻辑以适配新 API 设计模式。 一种可行的办法是借助第三方插件完成转换过程,从而继续沿用熟悉的语法风格而无需大幅修改现有业务代码结构。 --- ### 总结 综上所述,在 Vue 工程里集成 Iconfont 主要有三种途径可供选择:一是直接运用预置好的 Class 名字调用相应图案;二是统一添加外部依赖包使得全站共享同一套素材集;三是针对特定场合采取精细化管理策略减少冗余开销提升效率。开发者应根据实际情况灵活选用合适的方案满足各自的需求特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

富朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值