如何以Angular的姿势打开Font-Awesome详解


Posted in Javascript onApril 22, 2018

前言

本文主要给大家介绍了关于以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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript jQuery插件练习
Dec 24 Javascript
js AspxButton的客户端操作
Jun 26 Javascript
让div层随鼠标移动的实现代码 ie ff
Dec 18 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 Javascript
Javascript遍历table中的元素示例代码
Jul 08 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
js实现旋转木马效果
Mar 17 Javascript
bootstrap弹出层的多种触发方式
May 10 Javascript
解决webpack -p压缩打包react报语法错误的方法
Jul 03 Javascript
vue router 跳转时打开新页面的示例方法
Jul 28 Javascript
微信小程序以ssm做后台开发的实现示例
Apr 08 Javascript
vue移动端实现下拉刷新
Apr 22 #Javascript
实例讲解Vue.js中router传参
Apr 22 #Javascript
用Vue写一个分页器的示例代码
Apr 22 #Javascript
vue-cli3.0 特性解读
Apr 22 #Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
Apr 22 #Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 #Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 #Javascript
You might like
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
大堂副理的岗位职责范文
2014/02/17 职场文书
匿名检举信范文
2015/03/02 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS