19

我正在使用 angular 7.0.1 和 angular material 7.0.2,我想添加字体真棒 5.4.2 图标,我正在尝试按照 fontawesome web 上的步骤操作,但我无法获得字体真棒图标字体。

第一的:

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'

但是字体真棒图标字体永远不会被打印出来。我错过了一些重要而明显的东西,但现在我没有看到它。

4

7 回答 7

38

这就是我所做的,它对我有用:

在我的styles.scss中我有

@import "~@fortawesome/fontawesome-free/css/all.css";

然后我有

<mat-icon fontSet="fa" fontIcon="fa-clipboard-check"></mat-icon>

使用 scss 它也对我不起作用。

于 2018-11-01T09:56:24.680 回答
11

我按照以下简单步骤操作,它适用于在我的Angular 7项目中安装font awesome 5.6.3免费版) 。

运行以下命令以安装 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

Tats all..希望这会有所帮助..

于 2019-01-20T12:35:31.647 回答
7

如果您使用 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等。

那对我来说是最好的选择。


或者你可以使用angular-fontawesome库。

于 2018-11-27T13:20:39.610 回答
3

我使用这两种解决方案:

大量使用的图标

导入主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>
于 2020-03-18T23:21:34.823 回答
2
    <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);
于 2019-05-03T23:02:27.857 回答
0

我下载了 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"
                }
              ]
            }
          }
        }
      }
    }}
}

现在字体真棒图标可用于您的角度应用程序。我使用类 fa-2x 来控制图标的大小。将 fontSet 更改为“fal”将为您提供轻量版的字体真棒。

<mat-icon fontSet="fa" class="fa-2x" fontIcon="fa-user" matBadge="8" matBadgeSize="medium" matBadgePosition="after" matBadgeColor="warn"></mat-icon>

于 2020-09-09T15:22:00.767 回答
0

如果你想在里面使用 Font Awesome 图标<mat-icon>,如下所示,

<mat-icon><i class="fa fa-file-chart-line"></i></mat-icon>

** 您应该已经将 Font Awesome CSS 或 SCSS 导入到您的项目中

于 2020-09-28T04:22:19.577 回答