在Angular 7中将Font Awesome与Angular Material集成
在Angular7中将Font Awesome集成到Angular Material中
由大津修一撰写
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/2-0.png)
视频解说(中文)
视频解读(英文)
使用Angular Material整合Font Awesome。
我之前介绍了在Angular5中使用Font Awesome的方法,但由于Angular环境已经有了很大的变化,所以这次我将介绍在Angular7中使用Font Awesome的方法。
我认为在Angular中,经常会使用Angular Material。
在Angular Material中,您可以使用mat-icon,但遗憾的是可用的图标种类并不多。因此,考虑同时使用Angular Material和Font Awesome的方法。
很幸运,小山纯先生已经在他的博客《使用Angular Material6和Font Awesome显示图标》(https://blog.tagbangers.co.jp/2018/09/05/font-awesome-angular-material)中分享了这种方法,我决定根据他介绍的步骤来进行引入。
安装 Angular Material。
首先,需要在Angular7中安装Angular Material。
在访问所用的项目目录后,输入命令”code .”打开Visual Studio Code。
然后在终端窗口中,
ng add @angular/material 可以被翻译为:”ng 添加 @angular/material”。
输入。
然后,会要求选择内置主题,在这里我们选择默认的indigo-pink主题。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/18-0.png)
在询问是否安装HammerJS时,请选择“Yes”。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/20-0.png)
然后安装将会开始。
安装Font Awesome
接下来,使用npm安装Font Awesome。
安装@fortawesome/fontawesome-free
输入。
请注意拼写。@符号后面的字母是
字火箭
不是, 而是
强大的堡垒
是的。
在style.scss中导入Font Awesome
接下来,打开src目录中的style.scss文件,并插入导入语句。
@import “~@fortawesome/fontawesome-free/css/all.css”;
请导入“~@fortawesome/fontawesome-free/css/all.css”文件。
输入该信息。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/35-0.png)
编辑HTML文件
接下来,我们将进行HTML文件的编辑。
我們將在這裡進行登入頁面的編輯。
首先,使用 mat-button 进行按钮设置。然后,在其中插入 Font Awesome 图标。
只需在mat-icon的设置中,设置Font Awesome的fontset和fontIcon。
我在这里设置了Google的图标。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/42-0.png)
修改app.module.ts
需要提前导入Angular Material模块,以确保能够按照这个样式显示。
打开app.module.ts文件,在这里导入要使用的MatIconModule和MatButtonModule。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/46-0.png)
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/47-0.png)
显示谷歌图标
接下来我将在浏览器中尝试显示相关页面。
谷歌的图标已经显示出来了。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/51-0.png)
显示Twitter图标
接下来,让我们尝试展示Twitter图标。
在之前,需要确认该图标的字体集和图标名称。
首先,打开 Font Awesome 的官网。
这个链接是
是的。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/59-0.png)
在这个搜索框中,输入”Twitter”。
从这个搜索结果的图标中选择想使用的图标,并单击。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/62-0.png)
然后将显示HTML文本,点击该部分并复制到剪贴板中。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/64-0.png)
返回VS Code,并继续编辑HTML。
复制Google的内容并修改为Twitter的格式。
将确认过的字体图标名称更改。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/68-0.png)
我会在浏览器中确认。
好的。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/72-0.png)
Facebook图标的显示。
同样,显示Facebook的图标。
我打算在Font Awesome的网站上使用Facebook进行搜索。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/76-0.png)
选择目标图标,并将图标名称复制到剪贴板中。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/78-0.png)
回到VS Code,继续编辑HTML。
将Twitter上的内容复制并转换为Facebook使用。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/82-0.png)
当使用浏览器进行确认时,颜色与Twitter的颜色一样,因此将其进行更改。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/85-0.png)
将颜色从primary更改为warn。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/87-0.png)
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/88-0.png)
显示GitHub图标
显示GitHub的图标。
我在Font Awesome的网站上尝试在GitHub上进行搜索。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/92-0.png)
选择所需的图标,并将图标名称复制到剪贴板中。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/94-0.png)
回到VS Code,并继续编辑HTML。
将Facebook的内容复制并修改为适用于GitHub。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/98-0.png)
我会在浏览器上确认一下。
可以的。
![undefined](https://cdn.silicloud.com/blog-img/blog/img/657d379237434c4406c73593/102-0.png)
原始文件
登录.html
<p>
sign-in works!
</p>
<button (click)= "loginWithGoogle()" mat-raised-button color="accent">
<mat-icon fontSet="fab" fontIcon="fa-google" inline></mat-icon>
Google
</button>
<button (click)= "loginWithTwitter()" mat-raised-button color="primary">
<mat-icon fontSet="fab" fontIcon="fa-twitter" inline></mat-icon>
Twitter
</button>
<button (click)= "loginWithFacebook()" mat-raised-button color="warn">
<mat-icon fontSet="fab" fontIcon="fa-facebook-f" inline></mat-icon>
Facebook
</button>
<button (click)= "loginWithGithub()" mat-raised-button color="link">
<mat-icon fontSet="fab" fontIcon="fa-github" inline></mat-icon>
Github
</button>
参考资料
-
- “Angular Material6でFont Awesomeを利用してアイコンを表示する”,
-
- https://blog.tagbangers.co.jp/2018/09/05/font-awesome-angular-material
-
- “Angular5, Angular6, Angular7 Custom Library: Step-by-step guide”,
-
- https://www.udemy.com/angular5-custom-library-the-definitive-step-by-step-guide/
-
- “Angular5, Angular6, Angular7用 カスタムライブラリの作成: 完全ステップ・バイ・ステップ・ガイド”,
- https://www.udemy.com/angular5-l/