如何以Angular的姿势打开Font-Awesome详解
前言
本文主要给大家介绍了关于以Angular的姿势打开Font-Awesome的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
环境
- Angular: v5.2.9
- Font-Awesome: v5.0.10
- angular-fontawesome: v0.1.0-9
无须再用传统的 Web Font 方式
以前习惯于 Font-Awesome 的传统方式:页面底部引用一个 font-awesome.min.css 文件,然后在页面中使用 <i class="fa xxx"></i>
放置图标——这在 Angular 里依然可行,不过这并不 Angularish ——我们其实可以用 Angular 模块组件那种方式去实现。写此文时,官网还没有正式上线 Package for Angular, 不过在官方 GitHub 上已经有相关文档教程了,本文以下内容基本遵循该官方文档。
安装 Package
npm 方式:
$ npm install @fortawesome/fontawesome-svg-core --save $ npm install @fortawesome/free-solid-svg-icons --save $ npm install @fortawesome/angular-fontawesome --save
其中「free-solid-svg-icons」是经典样式,其他还有「regular」和「light」可选:
$ npm install @fortawesome/free-brands-svg-icons --save $ npm install @fortawesome/free-regular-svg-icons --save
在 app.module.ts 中导入基本模块
// ... import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; @NgModule({ // ... imports: [ // ... FontAwesomeModule ], // ... }) // ...
导入后便无须在其他组件中重复导入了。这是以下使用图标方式的基础。
按需使用方式一
在 component 里导入你所需要的图标:
// ... import { faCoffee } from '@fortawesome/free-solid-svg-icons'; //... export class AppComponent { //... myIcon = faCoffee; }
注意:这里导入的图标名字要加 fa 前缀,并使用 camelCase 命名法。导入后,你便可以在 html 模板中用以下方式使用图标:
<fa-icon [icon]="myIcon"></fa-icon>
注意在 html 模板中要直接使用图标名。图标可在官网图标库查询。
按需使用方式二
第二种按需使用的方式是使用 library, 使用 library 后你就不用再在 component 中导入图标了,一切都在 app.module.ts 中完成:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { library } from '@fortawesome/fontawesome-svg-core';
有了 library 后,接着再添加你需要用的图标:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { library } from '@fortawesome/fontawesome-svg-core'; import { faCoffee } from '@fortawesome/free-solid-svg-icons';
然后把图标加入到 library 里:
// import ... library.add(faCoffee); // NgModule({...
这样你就可以在 html 模板中直接使用了。
全套导入
对于一般规模的网站,我还是推荐将图标全部导入,想用什么就用什么,比查找名字一个一个导入方便。全套导入的方式就是用图标包的别称代替图标名:
// Single: import { faCoffee } from '@fortawesome/free-solid-svg-icons'; // All: import { fas } from '@fortawesome/free-solid-svg-icons';
其中「fas」的「s」代表的是「free-solid-svg-icons」的「solid」。以此类推,其他样式的导入是:
import { far } from '@fortawesome/free-regular-svg-icons'; import { fab } from '@fortawesome/free-brands-svg-icons';
然后在 library 中添加即可:
library.add(fas); // or library.add(fas, far);
添加之后,你就可以在 html 中任意使用图标了。
在 html 模板中的写法
之前的方式:
<fa-icon [icon]="coffee"></fa-icon> // or <fa-icon icon="coffee"></fa-icon>
其实是一种简便写法。它默认使用了 fas 样式的图标,如果要 far 或 fab,你需要这样写:
<fa-icon [icon]="['fas', 'coffee']"></fa-icon>
将样式包别称作为前缀填入数组第一个元素。我推荐这种精确的写法。
图标基本特效
Font-Awesome 还有很多很棒的图标特效——可以通过 html 的标签属性实现。这里直接复制文档中一些基础的用法:
旋转与脉搏式转动:
<fa-icon [icon]="['fas', 'spinner']" [spin]="true"></fa-icon> <fa-icon [icon]="['fas', 'spinner']" [pulse]="true"></fa-icon>
固定宽度:
<fa-icon [icon]="['fas', 'coffee']" [fixedWidth]="true"></fa-icon>
边框:
<fa-icon [icon]="['fas', 'coffee']" [border]="true"></fa-icon>
翻转:
<fa-icon [icon]="['fas', 'coffee']" flip="horizontal"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" flip="vertical"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" flip="both"></fa-icon>
尺寸:
<fa-icon [icon]="['fas', 'coffee']" size="xs"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" size="lg"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" size="6x"></fa-icon>
按角度偏转:
<fa-icon [icon]="['fas', 'coffee']" rotate="90"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" rotate="180"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" rotate="270"></fa-icon>
靠左或靠右排列:
<fa-icon [icon]="['fas', 'coffee']" pull="left"></fa-icon> <fa-icon [icon]="['fas', 'coffee']" pull="right"></fa-icon>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- Hive 在多维统计分析中的应用 & 技巧总结
- shell 学习笔记(18)
- Hive 中的复合数据结构简介以及一些函数的用法说明
- BloomFilter 简介及在 Hadoop reduce side join 中的应用
- 关于 hadoop reduce 阶段遍历 Iterable 的 2 个“坑”
- Hadoop Mapper 阶段将数据直接从 HDFS 导入 Hbase
- 译文 | 量化投资教程:投资组合优化与R实践
- 浅谈 java 中构建可执行 jar 包的几种方式
- python 日志模块 logging 详解
- 基于堆实现的优先级队列:PriorityQueue 解决 Top K 问题
- explain 深入剖析 MySQL 索引及其性能优化指南
- 图文并茂详解 SQL JOIN
- 自定义 hadoop MapReduce InputFormat 切分输入文件
- Hadoop MapReduce 二次排序原理及其应用
- 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 数组属性和方法
- dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人
- 10.7 border-width边框粗细:outline与border有什么不同?
- WPF 非客户区的触摸和鼠标点击响应
- Flink 解决 No ExecutorFactory found to execute the application
- 10.8 如何用js验证一下boz-sizing样式对块级盒子大小的影响?
- 10.9 块级盒子的内外边距:如何使用box-sizing重新定义盒子模式?
- 10.10 圆角边框border-radius与盒子阴影:如何使用它实现圆等特殊形状?
- 函数内部的this指向
- 正则表达式在js中的使用
- 10.11 如何使用git?
- 10.13 如何使用transform样式?
- 正则表达式中的特殊字符
- ES6新增语法--let
- ES6新增语法--const
- 10.14 如何实现一个居中弹出的窗口?