【Appetite】ionic3实录(三)修改自定义图标
常见图标有图像图标和字体图标两种,在移动端,字体图标对比图像图标有不少优点,所以一般采用字体图标为主。而字体图标的优缺点(使用图标字体的优点与缺点 | 骤雨打新荷)摘录如下,有兴趣可了解下:
图标字体的优点: 1、扩展性更强:图标字体可任意缩放、改变颜色、产生阴影或透明效果。 2、灵活性更高:图标字体可以得到CSS的很好支持,大小和颜色都很容易用CSS控制。 3、显示效果佳:矢量图标字体与分辨率无关,无论屏幕PPI高或低,显示效果俱佳。 4、兼容性更广:如果使用得当,图标字体100%可访问,并与几乎所有浏览器兼容。 5、优化效果好:由于图标字体体积更小而携带的信息并未削减,可大大减少HTTP请求。 图标字体的缺点: 1、由于图标字体只能被渲染成单色或者CSS3的渐变色,使得它不能被广泛使用。 2、很多精美图标字体是收费的,不过精美开源的免费图标也越来越多,并提供下载使用。 3、自已创作图标字体费时费力,后期维护成本偏高。
UI效果图给出了所需图标:
image.png
我们需要把它裁切并转成svg格式再生成字体图标,比较繁琐,而我新系统目前也没有装相应软件,所以这里不采用这些图标,选用网上已有类似的字体图标来代替。
免费的字体图标库很多,在这里我们打开阿里的图标库网站iconfont,随便找一个图标库(选图标库而不是选图标,是为了让图标风格一致):
image.png
加入购物车,并下载代码:
image.png
下载完成解压,并把这几个文件拷贝到src/assets/fonts
目录中:
iconfont.css
iconfont.eot
iconfont.svg
iconfont.ttf
iconfont.woff
关于图标文件的修改有好几种方法,网上搜索即可,在这里只介绍一种:
- 打开iconfont.css修改:
image.png
修改的内容,是为了可以用ionic的方式来使用这些自定义图标(其中,注意前缀是
ion-ios-
,不是icon-ios-
);注释的内容,沿用ionic的,这里没必要使用;
复制的内容,是为了tab图标在失去焦点后显示另一种状态Outline,如有类似下图的一对图标的话,就其中一个设置为Outline,如果没有,就复制一份设置为Outline。
image.png
- 修改tabs.html里的图标名字为这几个自定义图标:
<ion-tab [root]="tab1Root" tabIcon="zhuye"></ion-tab>
<ion-tab [root]="tab2Root" tabIcon="bianqian"></ion-tab>
<ion-tab [root]="tab3Root" tabIcon="xinxi"></ion-tab>
<ion-tab [root]="tab4Root" tabIcon="lianxiren"></ion-tab>
- 最后在
index.html
里面添加:
<link rel="stylesheet" href="assets/fonts/iconfont.css">
或者,可以但不建议在app.scss
或variables.scss
中import:
@import "../assets/fonts/iconfont.css";
最最后浏览器运行查看下效果,在此就不上图了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 绘图代码|多组学数据可视化的高端玩法
- Java单元测试——Mock技术配置
- 简单的场景分析LinearLayout 源码
- 避免栽坑之掌握Jenkins工作原理
- 如何检测JavaScript中的死循环?
- vue插槽2.6.0+
- 聊聊claudb的transaction command
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- springboot2之优雅处理返回值
- 通过NVM管理Node.js多版本
- 探究 Android 签名机制和原理
- “有迹可循”的灰盒测试分析
- 想用 Gitee 做图床工具,失败了~~
- Nginx系列:配置跳转的常用方式
- Python骚操作:一行代码实现探索性数据分析