【问题标题】:angular 6 custom material icons with ligature support带有连字支持的 Angular 6 自定义材质图标
【发布时间】:2018-07-05 08:46:10
【问题描述】:

是否可以创建带有连字支持的自定义材质图标。 我目前正在使用svgIcon 获取自定义图标, 有没有办法实现连字支持的自定义图标?

我当前的代码 sn-p 如下所示

app.component.ts

import { Component } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { MatIconRegistry } from '@angular/material';

  @Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
  })
  export class AppComponent {
    title = 'app';

    constructor(
      iconRegistry: MatIconRegistry,
      sanitizer: DomSanitizer
    ) {
      iconRegistry.addSvgIcon('key',
        sanitizer.bypassSecurityTrustResourceUrl('assets/icons/key.svg')
      );
      iconRegistry.addSvgIcon('user',
        sanitizer.bypassSecurityTrustResourceUrl('assets/icons/user.svg')
      );
    }

  }

login.component.html

<mat-form-field>
  <input matInput placeholder="Username" formControlName="username">
  <mat-icon matPrefix svgIcon="user"></mat-icon>
  <mat-error *ngIf="username.invalid">Username is required</mat-error>
</mat-form-field>

<mat-form-field>
  <input matInput type="password" placeholder="Password" formControlName="password">
  <mat-icon matPrefix svgIcon="key"></mat-icon>
  <mat-error *ngIf="password.invalid">Password is required</mat-error>
</mat-form-field>

【问题讨论】:

    标签: angular typescript angular6 google-material-icons ligature


    【解决方案1】:

    当然可以:

    步骤 1) 获取所有 SVG 图标。

    第 2 步)使用自定义连字创建字体。

    这是一个工具,用于创建您自己的带有连字支持的字体库。 https://icomoon.io

    第 3 步:

    声明你自己的字体。

    @font-face {
      font-family: 'icomoon';
      src: url('path.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }
    

    第 4 步: 用你自己的字体覆盖.material-icons

    .material-icons {
      font-family: 'MyFontFamily';
       ...
    }
    

    或声明您自己的fontSet,以便您可以同时使用两者。

    // Register to AppComponent
    
     constructor(iconRegistry: MatIconRegistry) {
        iconRegistry.registerFontClassAlias('MyFontFamily', 'MyIconClass');
     }
    

    最后一步。

    <mat-icon>LigatureToDisplay</mat-icon>
    

    <mat-icon fontSet="MyIconClass">LigatureOrUnicodeToDisplay</mat-icon>
    

    这是一个小教程。

    https://medium.com/@buddhiv/add-a-custom-icon-font-in-your-application-b1e07a687953

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 2020-08-06
      • 2018-11-24
      • 2016-03-07
      • 2019-06-11
      • 1970-01-01
      • 2019-03-24
      相关资源
      最近更新 更多