uni-app怎么引用字体图标 uni-app中使用iconfont详细教程

雨晨同学_1398

雨晨同学_1398

2026-05-09

364人浏览

原创

必须将 iconfont.css 中所有 url() 路径改为以 /static/ 开头的绝对路径,如 url('/static/iconfont/iconfont.woff2?t=123456789'),并分平台适配字体格式(小程序用 .woff/.woff2,app 端保留 .woff fallback),同时确保在 app.vue 的 中用 @import 引入、使用 或带 display: inline-block 的 标签,搭配 iconfont 和具体图标类名(如 icon-shouye)才能正常显示。

uni-app怎么引用字体图标 uni-app中使用iconfont详细教程

直接在 App.vue 的 <style></style> 中引入 iconfont.css 就能用,但必须改路径、删冗余、分平台处理,否则小程序不显示、H5 报 404、App 端图标乱码。

为什么 iconfont.css 改完路径还是不显示?

uni-app 各端对字体文件路径解析规则不同:H5 认相对路径,小程序只认绝对路径(/static/xxx),App 端还可能因字体加载时机问题导致首次渲染空白。常见错误是直接复制官网生成的 iconfont.css,里面路径写的是 url('iconfont.woff2') —— 这在任何端都找不到。

  • 必须把所有 url(...) 改成以 /static/ 开头的绝对路径,例如 url('/static/iconfont/iconfont.woff2?t=123456789')
  • 微信小程序不支持 .ttf,只认 .woff 和 .woff2;App 端某些安卓机对 .woff2 兼容差,建议保留 .woff 作为 fallback
  • 如果用了自定义构建(如 vite 模式),static 目录不会被自动拷贝到输出目录,需手动确认构建后 /unpackage/dist/build/mp-weixin/static/iconfont/ 下存在字体文件

怎么在页面里正确写 class 名?

别抄 demo_index.html 里带 icon- 前缀的 class,那是旧版命名。新版 iconfont 项目默认用「Font class」方式,实际类名是 icon-xxx,但具体后缀得看你在 iconfont 项目中给图标起的名字 —— 这个名字在下载前可编辑,不是搜索关键词自动决定的。

uni-app
uni-app

uni-app 是基于 Vue 的跨端开发框架,适合开发 H5、App、小程序、鸿蒙和多端业务应用。

下载
  • 打开下载包里的 demo_index.html,鼠标悬停图标,看 DOM 上写的 class 是什么,比如 icon-shouye、icon-shezhi
  • 在 <view></view> 或 <text></text> 标签里用:<view class="iconfont icon-shouye"></view>
  • iconfont 是字体族名,必须和 iconfont.css 里 @font-face 的 font-family 一致;icon-shouye 是单个图标的 class,两者缺一不可
  • 不能用 <icon></icon> 标签(非 uni-app 内置组件),也不能只写 icon-shouye 而漏掉 iconfont

main.js 引入 vs App.vue 引入,哪个更稳?

优先在 App.vue 的 <style lang="scss"></style> 或 <style></style> 里用 @import,不要在 main.js 里 import './static/iconfont/iconfont.css'。

  • main.js 是 JS 执行入口,CSS 引入在这里属于“运行时注入”,uni-app 的多端编译器(尤其是小程序)不一定能识别或提取样式,容易导致图标不生效
  • App.vue 的 <style></style> 是全局样式作用域,会被 uni-app 构建系统统一收集、内联或外链,各端兼容性更好
  • 如果项目用了 scss,@import '@/static/iconfont/iconfont.css' 可以直接写;如果是普通 css,就用 @import url('/static/iconfont/iconfont.css');
  • 注意路径别写成 ../static/... 或 ./static/...,一律用绝对路径 /static/...

图标颜色/大小调不了?检查这三点

字体图标本质是文字,但很多开发者卡在“设置了 color 没反应”,根本原因是 CSS 优先级或继承被覆盖,或者用了不支持的标签。

  • 必须用支持文本样式的标签:推荐 <text></text>(小程序/H5 都行),<view></view> 在部分平台需要加 display: inline-block 才能生效
  • color 属性必须直接作用于带 iconfont 类的元素,不要靠父级继承;若父级有 color: #999,子级又没显式重写,图标就会被染色
  • 字号用 font-size 控制,单位推荐 rpx(响应式);避免用 width/height 缩放,那会拉伸失真
  • 调试技巧:在浏览器开发者工具里检查元素 computed 样式,确认 font-family: "iconfont" 是否生效、color 是否被覆盖、是否有其他 CSS 重置了 font-size

最易忽略的是:iconfont 项目更新后重新下载,你改过的 iconfont.css 被新文件覆盖,路径又变回相对地址;还有就是图标的 class 名在 iconfont 后台悄悄改了,但你代码里还用旧名——这两点几乎占了 70% 的“图标不显示”报错原因。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

uni-app iconfont

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2503

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5383

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6430

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6038

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

863

5

C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

3189

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2308

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1240

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1198

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习