Vue 中 iconfont 使用

本文介绍了图标库的发展历程,特别是Iconfont图标库的重要性及其在项目中的应用。涵盖基础使用方法,如Unicode、Fontclass和Symbol等方式,以及如何通过svg-sprite-loader实现图标自动管理。此外,还探讨了彩色字体图标的技术细节。

图标库的发展过程,iconfont图标库的重要性(项目常用)

对于前端而言,图标的发展可谓日新月异。从img标签,到雪碧图,再到字体图标,svg,甚至svg也有了类似于雪碧图的方案svg-sprite-loader。在项目实践中,bootstrap,font-awesome,element-ui等UI库都基本标配了字体图标。

一、Iconfont - 图标管理工具

阿里巴巴旗下阿里妈妈MUX团队打造的图标管理平台。

这是一个专门为设计师和前端开发者打造的在线工具。设计师将图标上传到 Iconfont,可以自定义下载多种格式的icon,也可将图标转换为字体,方便前端工程师自由调整与使用。

通过这个免费的工具,设计师不仅可以浏览下载大量优秀设计师的图标作品,还可以管理和展示自己设计的图标。已经成为很多UI设计师和前端开发者日常工作的必备工具。

大量优质的原创图标库

特点

  1. 矢量图标在线存储管理。

  2. 设计师绘制的大量图标都可以上传,解决了管理和查找图标非常困难的痛点;

  3. 按项目管理图标,支持自定义尺寸和颜色,无论是前端工程师还是UI设计师,再也不用苦逼地切图搬砖了,需要什么尺寸,可以在平台上自行下载;

  4. 对于开发者来说,可以把需要的矢量图标以项目的方式管理,一键生成在web上通过css字体控制的矢量图标,支持在web/h5/小程序/App上调用,使用简单便捷,再也不需要用模糊的图片图标了;

  5. 对于设计师来说,平台上有上千上万设计师分享自己设计的图标,绝对是图标设计学习和灵感的利器。

二、Iconfont - 基础使用

引入iconfont的三种方式:Unicode、Font class、Symbol。

1、Unicode方式(不推荐)

在线使用

1)index.scss中引入在线字体

@font-face {  font-family: 'iconfont';  /* project id 1254715 */    
src: url('//at.alicdn.com/t/font_1254715_s1khj1whikd.eot');    
src: url('//at.alicdn.com/t/font_1254715_s1khj1whikd.eot?#iefix') format('embedded-opentype'),    
url('//at.alicdn.com/t/font_1254715_s1khj1whikd.woff2') format('woff2'),    
url('//at.alicdn.com/t/font_1254715_s1khj1whikd.woff') format('woff'),    
url('//at.alicdn.com/t/font_1254715_s1khj1whikd.ttf') format('truetype'),    
url('//at.alicdn.com/t/font_1254715_s1khj1whikd.svg#iconfont') format('svg');}
复制代码

2)页面中使用

使用时很不友好,使用的是unicode码表示,使用图标还必须去iconfont项目去查询下unicode码。

<template>    
    <div>        
        <i class="iconfont">&#xe7ee;</i>        
        <i class="iconfont">&#xe7ed;</i>        
        <i class="iconfont">&#xe7ec;</i>        
        <i class="iconfont">&#xe7eb;</i>    
    </div>
</template>
复制代码

本地使用

有时候网络不是那么给力的,或者是内网环境,那么就不要考虑用在线引用的方式了。

1)本地使用需要先将字体库下载并放到项目中。

2)在全局样式文件中定义如下代码

@font-face {  font-family: "iconfont";  
src: url('../
### Vue 项目中 Iconfont 图标显示空白的原因分析 在 Vue 项目中,如果 Iconfont 图标无法正常显示而呈现为空白状态,可能由以下几个原因引起: #### 1. **CSS 文件未正确引入** 如果项目的 `index.html` 或者全局 CSS 文件中没有正确引入 Iconfont 的样式文件,则可能导致图标类名找不到对应的字体定义。这通常是因为缺少以下代码片段: ```html <link rel="stylesheet" href="//at.alicdn.com/t/font_XXXXXX.css"> ``` 这里的 URL 是从阿里云 Iconfont 平台下载的自动生成链接[^1]。 #### 2. **网络请求失败** 若 Iconfont 的 CSS 文件托管于外部 CDN,在生产环境中可能会因为跨域或者网络问题导致资源加载失败。此时可以通过浏览器开发者工具中的 Network 面板查看是否存在 HTTP 请求错误或超时情况。 #### 3. **HTML 结构书写不规范** 正确使用 Iconfont 图标的 HTML 标签应如下所示: ```html <i class="iconfont icon-weixin"></i> ``` 如果遗漏了 `class="iconfont"` 或具体的图标配对名称(如 `icon-weixin`),则不会渲染出任何图形内容[^2]。 #### 4. **打包配置冲突** 在某些情况下,Webpack 打包过程中会对静态资源路径进行修改,从而破坏原本指向远程服务器上的字体文件地址。这种情形尤其容易发生在切换环境变量之后忘记同步调整公共资源前缀的情况下[^3]。 --- ### 解决方案 针对上述提到的各种可能性提供相应的修复措施如下: #### 方法一:确认并修正 CSS 路径导入方式 确保在入口级组件 (App.vue) 中显式声明所需依赖项;如果是本地存储形式而非在线调用的话记得复制整个目录到 src/assets 下再做相应更改即可完成迁移工作流程优化目标达成效果更好一些哦! ```javascript import '@/assets/css/iconfont.css'; // 假设已将 css 放入此位置 ``` #### 方法二:检查网路状况排除异常因素干扰 利用 Chrome 浏览器自带调试功能定位具体哪一步骤出现问题进而采取针对性手段加以改进直至恢复正常为止才行呢朋友们加油吧! 打开 F12 -> 切换至 Networks Tab 查看对应 request 是否成功返回 status code 200. #### 方法三:验证模板语法准确性无误后再提交测试运行一遍看看有没有改善迹象呀😊 严格按照官方文档给出的标准格式编写相关部分就不会轻易犯错了不是吗?所以请务必仔细核对你所使用的每一处地方是否有偏差存在哟~比如下面这个例子就是完全按照推荐做法来的啦: ```vue <template> <div> <!-- 微信分享按钮 --> <span><i class="iconfont icon-weixin"></i></span> </div> </template> <script> export default { } </script> <style scoped lang='scss'> @import "../assets/css/iconfont"; /* 自己的实际路径 */ </style> ``` #### 方法四:适当调整 Webpack 构建选项参数设定值范围大小以便适应不同场景需求变化趋势发展规律特征表现形态等方面考虑周全一点会比较好些哈😄 对于那些经常遇到类似困扰的朋友来说不妨试试看把 publicPath 设置成 '/' 来解决问题如何?当然具体情况还得视实际项目架构布局安排再来决定最佳实践策略才是明智之举啊各位小伙伴们都懂滴😏 编辑 vue.config.js 添加以下字段: ```javascript module.exports = { ... publicPath:'/' }; ``` --- ### 总结 综上所述,当面对 Vue 项目里 Iconfont 图标展示不出来的情况时可以从多个角度出发逐一排查直到找到根本症结所在然后施加有效对策予以彻底根除隐患风险保障系统稳定高效运转下去才好嘛😉 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值