如何以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高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
当json键为数字时的取值方法解析
Nov 15 Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 Javascript
javascript中数组和字符串的方法对比
Jul 20 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
全面分析JavaScript 继承
May 30 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 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笔记之:AOP的应用
2013/04/24 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python杀死一个线程的方法
2015/09/06 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
Python实现视频下载功能
2017/03/14 Python
Django中modelform组件实例用法总结
2020/02/10 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
最新大学生自我评价
2013/09/24 职场文书
运动会广播稿150字
2014/02/19 职场文书
新闻发布会主持词
2014/03/28 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python