uni-app小程序项目使用iconfont字体图标

news/2024/9/29 10:03:50

前情

uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app。

为什么要这么做?

  • 借助字体图标,我们可以如同操作文字一样操作字体图标。如,颜色的切换、大小的改变
  • 对字体图标进行放大不会出现失真、缩小不会浪费掉像素点
  • 对于小程序项目因单包体积最大是2M,而前端开发中最占用体积的就是图片资源,所以使用字体图标在一定程序上能减少图片使用,从而减小包体积
  • iconfont是国内有名气的且图标丰富的字体图标库,同时支持上传SVG定制专属于自己的图标库

使用主要步骤

点击网址:iconfont-阿里巴巴矢量图标库进入iconfont网站并登录账号

  1. 进入我的项目管理页并新建一个项目

前辍设置和Font Family可以自定义,一般保持默认即可,如果你项目中有多个字体图标那你就自定义了,这样以区分开来使用;

此处字体格式选Base64或者TTF都是可以的,但Base64的体积会比TTF大一些,特别当图标增多的时候,如果你项目图标比较少用Base64也是没有问题的,我选择的是TTF

  1. 添加图标

可以直接搜索使用现成的图标或者上传SVG生成自定义的图标,SVG文件有一定的规范要求,具体查看上传页面底部的详细说明

  1. 生成字体图标文件

图标zip包下载到本地后,解压后其中iconfont.ttf文件和iconfont.css文件是我们需要的,双击demo.html文件可以查看图标样式,可以作为使用的时候的参考对照

  1. 在项目根组件App.vue中引入iconfont.css文件
<script>
export default {onLaunch: function (e) {console.log('App Launch', e);},onShow: async function () {console.log('App Show');},onHide: function () {console.log('App Hide');},onError: function(e) {console.log('---- App onError ----:', e);}
};
</script>
<style lang="scss">
@import '@/static/font/iconfont.css';
...
</style>
  1. 在项目中使用

在项目中只需要添加iconfont icon-home样式名,CSS会通过伪元素插入图标,至此,你就可以愉快的在uni-app项目中使用字体图标了,通过修改字体颜色修改图标颜色,修改字体大小来修改图标大小,其中iconfont和icon-前辍就是在第1步建立图标项目的时候设置的Font Family和前辍

<view class="iconfont icon-home !zhs-text-[80rpx]"></view>
<view class="iconfont icon-setting zhs-text-[red]"></view>

扩展

如果你项目中使用了uni-app的官方扩展组件uni-icons,你可以更方便的使用iconfont字体图标,使用示例如下:

<uni-icons custom-prefix="iconfont" type="icon-search" size="30"></uni-icons>

注意

在uni-app小程序项目中使用字体图标和在普通web项目中使用字体图标区别不是特别大,唯一需要注意的点就是在字体文件的选择上,如果是web项目需要引入除ttf外的其它字体文件以保证兼容性;

维护比普通图片要稍微麻烦一些,如果你使用了iconfont字体图标,你后面图标管理必须依赖iconfont的管理平台,如果要添加、修改或者删除图标,你都得在iconfont管理平台处理好项目图标,再下载指定的文件替换项目中的旧文件,虽然官方有很多免费可用的图标,但以我开发经验来看,公司项目一般都会自定义图标,不会使用第三方的图标,如果想自定义自己的图标需要UI根据Iconfont规范出SVG文件再上传到iconfont平台后才能使用;

iconfont是需要账号登录的,最好是公司申请一个账号,全部人共用,这样可以避免因有人离职而导致项目中使用的字体图标无法维护的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66065.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

pbootcms网站自动清理runtime缓存方法

为了实现自动清理缓存目录的功能,可以按照以下步骤进行:备份相关文件: 在进行任何修改之前,请确保备份所有相关文件和数据库,以防修改过程中出现错误导致数据丢失。定位并修改ExtLabelController.php文件:打开/apps/home/controller/ExtLabelController.php文件。 在test…

在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型

在深度学习模型的训练过程中,学习率作为一个关键的超参数,对模型的收敛速度和最终性能有着重大影响。传统方法通常采用统一的学习率,但随着研究的深入,我们发现为网络的不同层设置不同的学习率可能会带来显著的性能提升。本文将详细探讨这一策略的实施方法及其在PyTorch框架…

Codesys3.5 封装库 和 库的调用

1、库的建立第一步。 2、新建个文件夹,方便管理哦 3、然后在文件 右键》添加对象中添加几个pou4、随便建立几个。 4、设置工程信息,也就库信息哦 双击工程信息 弹出 5、最后就是生成库文件哦。 6、调用刚才的库,要新建一个工程哦。 7、把资源 添加到 8、编译,登录,运…

macd公式

MACD指标的计算和理解 - 知乎 (zhihu.com)

【Python脚本】路径管理之pathlib

python的pathlib中,purepath类与path类的差别在Python的pathlib模块中,Path类和PurePath类是用于处理文件和目录路径的两个主要类.它们具有不同的目的和功能,以下是它们的主要异同点:类的继承关系: Path类继承自PurePath,因此Path类拥有PurePath的所有方法.不同点: PurePath类…

基于VU9P的4路 100G光纤 6U VPX板卡

基于VU9P的4路 100G光纤 6U VPX板卡一款VPX的光纤接入卡,板卡的前面板提供4路 100G QSFP28+接口(16路GTY接口),后出线接入到VPX背板,提供28路GTY接口。板卡的P1提供16 lane PCI-E 3.0 接口,可运行一路16X的接口协议,板卡的P2提供两组 PCI-E 3.0 8X接口,可提供 两组8X的…

​VMware NSX 4.2.0.2 发布,新增功能概览

​VMware NSX 4.2.0.2 发布,新增功能概览​VMware NSX 4.2.0.2 发布,新增功能概览 VMware NSX 4.2.0.2 - 网络安全虚拟化平台 构建具有网络连接和安全性的云智能网络,跨多种云环境支持一致的策略、运维和自动化。 请访问原文链接:https://sysin.org/blog/vmware-nsx-4/,查…

从零开始学机器学习——线性和多项式回归

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 在之前的学习中,我们已经对数据的准备工作以及数据可视化有了一定的了解。今天,我们将深入探讨基本线性回归和多项式回归的概念与应用。 如果在过程中涉及到一些数学知识,大家也不必感到畏惧,我会逐步…