以 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 上已經有相關文檔教程了,本文如下內容基本遵循該官方文檔。css

安裝 Package

  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

在 app.module.ts 中導入基本模塊

// ...
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 中任意使用圖標了。

在 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>
相關文章
相關標籤/搜索