之前习惯于 Font-Awesome 的传统方式:页面底部引用一个 font-awesome.min.css 文件,而后在页面中使用 <i class="fa xxx"></i>
放置图标——这在 Angular 里依然可行,不过这并不 Angularish ——咱们其实能够用 Angular 模块组件那种方式去实现。写此文时,官网尚未正式上线 Package for Angular, 不过在官方 GitHub 上已经有相关文档教程了,本文如下内容基本遵循该官方文档。css
npm 方式:html
$ 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」可选:git
$ npm install @fortawesome/free-brands-svg-icons --save $ npm install @fortawesome/free-regular-svg-icons --save
// ... import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; @NgModule({ // ... imports: [ // ... FontAwesomeModule ], // ... }) // ...
导入后便无须在其余组件中重复导入了。这是如下使用图标方式的基础。github
在 component 里导入你所须要的图标:web
// ... import { faCoffee } from '@fortawesome/free-solid-svg-icons'; //... export class AppComponent { //... myIcon = faCoffee; }
注意这里导入的图标名字要加 fa 前缀,并使用 camelCase 命名法。导入后,你即可以在 html 模板中用如下方式使用图标:shell
<fa-icon [icon]="myIcon"></fa-icon>
注意在 html 模板中要直接使用图标名。图标可在官网图标库查询。npm
第二种按需使用的方式是使用 library, 使用 library 后你就不用再在 component 中导入图标了,一切都在 app.module.ts 中完成:数组
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
有了 library 后,接着再添加你须要用的图标:app
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { library } from '@fortawesome/fontawesome-svg-core'; import { faCoffee } from '@fortawesome/free-solid-svg-icons';
而后把图标加入到 library 里:svg
// 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 中任意使用图标了。
以前的方式:
<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>