在角形材料7上使​​用真棒字体5

Ale*_*lex 8 icon-fonts font-awesome-5 angular7 angular-material-7

我使用的是Angle 7.0.1和Angle Material 7.0.2,我想添加字体真棒5.4.2图标,并且尝试按照fontawesome网站上的步骤操作,但是我无法获得字体真棒图标字体。

第一:

npm install --save-dev @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)

然后在styles.scss中添加:

@import '~@fortawesome/fontawesome-free/scss/fontawesome.scss';
Run Code Online (Sandbox Code Playgroud)

并在_variables.scss中添加:

$fa-font-path: '~@fortawesome/fontawesome-free/webfonts';
Run Code Online (Sandbox Code Playgroud)

现在在app.component.ts中添加:

import { MatIconRegistry } from "@angular/material";

[...]

constructor(
    public matIconRegistry: MatIconRegistry,
  ) {
    matIconRegistry.registerFontClassAlias ('fas');  // tried with 'fas' and with 'fa'
  }
Run Code Online (Sandbox Code Playgroud)

最后我打算用以下命令打印字体很棒的图标:

<mat-icon mat-list-icon fontIcon="fas github"></mat-icon>  // tryed also with 'fas-github', 'fasGithub', 'github', 'fa-github', 'fa github' and 'faGithub'
Run Code Online (Sandbox Code Playgroud)

但是从未打印过字体超赞的图标字体。我错过了一些重要而又显而易见的东西,但是现在我没有看到它。

Gab*_*995 19

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

在我的styles.scss中

@import "~@fortawesome/fontawesome-free/css/all.css";
Run Code Online (Sandbox Code Playgroud)

那我有

<mat-icon fontSet="fa" fontIcon="fa-clipboard-check"></mat-icon>
Run Code Online (Sandbox Code Playgroud)

使用scss也不适合我。

  • 是的!看来 scss 有问题,它不起作用。我没有使用 fontSet="fa",但我发现,当我使用品牌时,如果我使用“fa”,我的字体集需要是“fab”,我只能看到一个正方形。谢谢。 (2认同)

小智 6

如果您使用 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";
Run Code Online (Sandbox Code Playgroud)

并正常使用它:

<span class="fab fa-refresh fa-spin fa-github" aria-hidden="true"></spin>
Run Code Online (Sandbox Code Playgroud)

注意命名空间,fab代表品牌,fas代表solid 等。

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


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


Kar*_*iri 5

我按照以下简单步骤进行操作,它对我来说可以在Angular 7项目中安装很棒的5.6.3免费版本字体

运行以下命令以安装font-awesome最新版本。

npm install --save-dev @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)

将文件路径添加到angular.json文件中。

"styles": ["node_modules/@fortawesome/fontawesome-free/css/all.css"],
"scripts": ["node_modules/@fortawesome/fontawesome-free/js/all.js"]
Run Code Online (Sandbox Code Playgroud)

供参考:https : //fontawesome.com/how-to-use/on-the-web/setup/using-package-managers

品尝一下..希望这会有所帮助..


hov*_*ado 5

我使用这两个解决方案:

大量使用图标(字体)

导入主fontawesome.scss文件。

导入首选样式文件,例如regular.scss(在 angular.json 中或通过 @import)。

在模块中注册默认字体集,因此您不必为每个图标定义它:

constructor(private matIconRegistry: MatIconRegistry) {
    matIconRegistry.setDefaultFontSetClass('far'); // or 'fas' for solid style etc.
}
Run Code Online (Sandbox Code Playgroud)

最后定义图标线:

<mat-icon fontIcon="fa-smile"></mat-icon>
Run Code Online (Sandbox Code Playgroud)

少量使用的图标 (SVG)

不需要导入所有图标,只需要在模块中单独定义每个图标即可。其他优点是您可以定义自己的图标名称以获得更好的清晰度,将图标与不同样式(纯色、双色调...)组合,而无需加载其他图标集,或者只需添加您自己的 svg 图标或徽标。

constructor(private matIconRegistry: MatIconRegistry,
            private sanitizer: DomSanitizer) {
    matIconRegistry.addSvgIcon('smile', sanitizer.bypassSecurityTrustResourceUrl('smile.svg'));
}
Run Code Online (Sandbox Code Playgroud)

图标:

<mat-icon svgIcon="smile"></mat-icon>
Run Code Online (Sandbox Code Playgroud)