在 angular material 7 上使用 awesome 5 字体
Use font awesome 5 on angular material 7
我正在使用 angular 7.0.1 和 angular material 7.0.2,我想添加 font awesome 5.4.2 图标,我正在尝试按照 fontawesome 网站上的步骤操作但我无法获取字体真棒图标字体。
第一个:
npm install --save-dev @fortawesome/fontawesome-free
然后在 styles.scss 添加:
@import '~@fortawesome/fontawesome-free/scss/fontawesome.scss';
并在 _variables.scss 中添加:
$fa-font-path: '~@fortawesome/fontawesome-free/webfonts';
现在 app.component.ts 添加:
import { MatIconRegistry } from "@angular/material";
[...]
constructor(
public matIconRegistry: MatIconRegistry,
) {
matIconRegistry.registerFontClassAlias ('fas'); // tried with 'fas' and with 'fa'
}
最后我应该打印字体很棒的图标:
<mat-icon mat-list-icon fontIcon="fas github"></mat-icon> // tryed also with 'fas-github', 'fasGithub', 'github', 'fa-github', 'fa github' and 'faGithub'
但是从未打印过字体真棒图标字体。我遗漏了一些重要且明显的东西,但现在我没有看到它。
这是我所做的并且对我有用:
在我的 styles.scss 我有
@import "~@fortawesome/fontawesome-free/css/all.css";
那我有
<mat-icon fontSet="fa" fontIcon="fa-clipboard-check"></mat-icon>
对于 scss,它对我也不起作用。
如果您使用 scss,您只需将样式导入到您的 vendor.scss:
$fa-fort-path: "~@fontawesome/fontawesome-free/webfonts";
@import "~@fortawesome/fontawesome-free/scss/fontawesome";
@import "~@fortawesome/fontawesome-free/scss/regular";
@import "~@fortawesome/fontawesome-free/scss/solid";
@import "~@fortawesome/fontawesome-free/scss/brands";
并正常使用:
<span class="fab fa-refresh fa-spin fa-github" aria-hidden="true"></spin>
注意命名空间,fab 代表品牌,fas 代表 solid 等
这对我来说是最好的选择。
或者您可以使用 angular-fontawesome 库。
我遵循以下简单步骤,
我可以在我的 Angular 7[= 中安装 font awesome 5.6.3(免费版) 26=]项目。
运行 下面的命令安装 font-awesome 最新版本。
npm install --save-dev @fortawesome/fontawesome-free
在 angular.json 文件中添加文件路径。
"styles": ["node_modules/@fortawesome/fontawesome-free/css/all.css"],
"scripts": ["node_modules/@fortawesome/fontawesome-free/js/all.js"]
供参考:https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers
全部纹身..
希望这会有所帮助..
<fa-icon icon="fa-clipboard-check"></fa-icon>
确保在组件的容器模块中导入了 FontAwesomeModule。
如果您需要 svg:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import {faClipboardCheck} from '@fortawesome/free-solid-svg-icons';
library.add(faClipboardCheck);
我使用这两个解决方案:
大量使用的图标
导入主 fontawesome.scss
文件。
导入首选样式文件,例如regular.scss
(都在 angular.json 中或通过 @import)。
在模块中注册默认字体集,这样您就不必为每个图标都定义它了:
constructor(private matIconRegistry: MatIconRegistry) {
matIconRegistry.setDefaultFontSetClass('far'); // or 'fas' for solid style etc.
}
最后定义图标行:
<mat-icon fontIcon="fa-smile"></mat-icon>
少量使用的图标
无需导入所有图标,只需在模块中单独定义每个图标即可。其他优点是您可以定义自己的图标名称以便更清晰,组合不同样式的图标(纯色,双色调...)而无需加载另一个图标集,或者只需添加您自己的 svg 图标或徽标。
constructor(private matIconRegistry: MatIconRegistry,
private sanitizer: DomSanitizer) {
matIconRegistry.addSvgIcon('smile', sanitizer.bypassSecurityTrustResourceUrl('smile.svg'));
}
图标:
<mat-icon svgIcon="smile"></mat-icon>
我下载了 font-awesome 包并将 /webfonts 文件夹和 /css/all.css 文件复制到 src/assets/。我将路径 src/assets/css/all.css 添加到 angular.json 构建选项中的样式数组,如下所示。
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"NAME_OF_PROJECT": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/NAME_OF_PROJECT",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets",
"src/.well-known"
],
"styles": [
"src/styles.scss",
"src/assets/css/all.css",
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
}
}
}}
}
现在可以在您的 angular 应用程序中使用很棒的字体图标了。我用classfa-2x来控制图标的大小。将 fontSet 更改为“fal”将为您提供超赞的轻型字体。
<mat-icon fontSet="fa" class="fa-2x" fontIcon="fa-user" matBadge="8" matBadgeSize="medium" matBadgePosition="after" matBadgeColor="warn"></mat-icon>
如果你想在里面使用 Font Awesome 图标 <mat-icon>
只需按照下面的方式使用,
<mat-icon><i class="fa fa-file-chart-line"></i></mat-icon>
** 您应该已经将 Font Awesome CSS 或 SCSS 导入您的项目
我正在使用 angular 7.0.1 和 angular material 7.0.2,我想添加 font awesome 5.4.2 图标,我正在尝试按照 fontawesome 网站上的步骤操作但我无法获取字体真棒图标字体。
第一个:
npm install --save-dev @fortawesome/fontawesome-free
然后在 styles.scss 添加:
@import '~@fortawesome/fontawesome-free/scss/fontawesome.scss';
并在 _variables.scss 中添加:
$fa-font-path: '~@fortawesome/fontawesome-free/webfonts';
现在 app.component.ts 添加:
import { MatIconRegistry } from "@angular/material";
[...]
constructor(
public matIconRegistry: MatIconRegistry,
) {
matIconRegistry.registerFontClassAlias ('fas'); // tried with 'fas' and with 'fa'
}
最后我应该打印字体很棒的图标:
<mat-icon mat-list-icon fontIcon="fas github"></mat-icon> // tryed also with 'fas-github', 'fasGithub', 'github', 'fa-github', 'fa github' and 'faGithub'
但是从未打印过字体真棒图标字体。我遗漏了一些重要且明显的东西,但现在我没有看到它。
这是我所做的并且对我有用:
在我的 styles.scss 我有
@import "~@fortawesome/fontawesome-free/css/all.css";
那我有
<mat-icon fontSet="fa" fontIcon="fa-clipboard-check"></mat-icon>
对于 scss,它对我也不起作用。
如果您使用 scss,您只需将样式导入到您的 vendor.scss:
$fa-fort-path: "~@fontawesome/fontawesome-free/webfonts";
@import "~@fortawesome/fontawesome-free/scss/fontawesome";
@import "~@fortawesome/fontawesome-free/scss/regular";
@import "~@fortawesome/fontawesome-free/scss/solid";
@import "~@fortawesome/fontawesome-free/scss/brands";
并正常使用:
<span class="fab fa-refresh fa-spin fa-github" aria-hidden="true"></spin>
注意命名空间,fab 代表品牌,fas 代表 solid 等
这对我来说是最好的选择。
或者您可以使用 angular-fontawesome 库。
我遵循以下简单步骤, 我可以在我的 Angular 7[= 中安装 font awesome 5.6.3(免费版) 26=]项目。
运行 下面的命令安装 font-awesome 最新版本。
npm install --save-dev @fortawesome/fontawesome-free
在 angular.json 文件中添加文件路径。
"styles": ["node_modules/@fortawesome/fontawesome-free/css/all.css"],
"scripts": ["node_modules/@fortawesome/fontawesome-free/js/all.js"]
供参考:https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers
全部纹身.. 希望这会有所帮助..
<fa-icon icon="fa-clipboard-check"></fa-icon>
确保在组件的容器模块中导入了 FontAwesomeModule。
如果您需要 svg:
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import {faClipboardCheck} from '@fortawesome/free-solid-svg-icons';
library.add(faClipboardCheck);
我使用这两个解决方案:
大量使用的图标
导入主 fontawesome.scss
文件。
导入首选样式文件,例如regular.scss
(都在 angular.json 中或通过 @import)。
在模块中注册默认字体集,这样您就不必为每个图标都定义它了:
constructor(private matIconRegistry: MatIconRegistry) {
matIconRegistry.setDefaultFontSetClass('far'); // or 'fas' for solid style etc.
}
最后定义图标行:
<mat-icon fontIcon="fa-smile"></mat-icon>
少量使用的图标
无需导入所有图标,只需在模块中单独定义每个图标即可。其他优点是您可以定义自己的图标名称以便更清晰,组合不同样式的图标(纯色,双色调...)而无需加载另一个图标集,或者只需添加您自己的 svg 图标或徽标。
constructor(private matIconRegistry: MatIconRegistry,
private sanitizer: DomSanitizer) {
matIconRegistry.addSvgIcon('smile', sanitizer.bypassSecurityTrustResourceUrl('smile.svg'));
}
图标:
<mat-icon svgIcon="smile"></mat-icon>
我下载了 font-awesome 包并将 /webfonts 文件夹和 /css/all.css 文件复制到 src/assets/。我将路径 src/assets/css/all.css 添加到 angular.json 构建选项中的样式数组,如下所示。
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"NAME_OF_PROJECT": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/NAME_OF_PROJECT",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets",
"src/.well-known"
],
"styles": [
"src/styles.scss",
"src/assets/css/all.css",
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
}
}
}}
}
现在可以在您的 angular 应用程序中使用很棒的字体图标了。我用classfa-2x来控制图标的大小。将 fontSet 更改为“fal”将为您提供超赞的轻型字体。
<mat-icon fontSet="fa" class="fa-2x" fontIcon="fa-user" matBadge="8" matBadgeSize="medium" matBadgePosition="after" matBadgeColor="warn"></mat-icon>
如果你想在里面使用 Font Awesome 图标 <mat-icon>
只需按照下面的方式使用,
<mat-icon><i class="fa fa-file-chart-line"></i></mat-icon>
** 您应该已经将 Font Awesome CSS 或 SCSS 导入您的项目