環境
- 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>