如何以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 相关文章推荐
Extjs 几个方法的讨论
Jan 28 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 Javascript
JavaScript中:表达式和语句的区别[译]
Sep 17 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
jQuery实现拖拽可编辑模块功能代码
Jan 12 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
JS同步、异步、延迟加载的方法
May 05 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
原生js实现随机点名
Jul 05 Javascript
浅谈JavaScript中this的指向问题
Jul 28 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
搜索引擎技术核心揭密
2006/10/09 PHP
php入门小知识
2008/03/24 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
php动态函数调用方法
2015/05/21 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
phpStorm2020 注册码
2020/09/17 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
《三顾茅庐》教学反思
2014/04/10 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
英语故事演讲稿
2014/04/29 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
中秋晚会致辞
2015/07/31 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js