如何以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 鼠标拖动图标技术
Feb 07 Javascript
javascript textContent与innerText的异同分析
Oct 22 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
Jan 20 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
vue项目中引入Sass实例方法
Aug 27 Javascript
js获取本日、本周、本月的时间代码
Feb 01 Javascript
如何基于filter实现网站整体变灰功能
Apr 17 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 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
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
理解Python中函数的参数
2015/04/27 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
对python中return与yield的区别详解
2020/03/12 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
求职简历自荐信范文
2013/10/21 职场文书
四风存在的原因分析
2014/02/11 职场文书
八项规定整改措施
2014/02/12 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL