Angular Material icons not working

前端 未结 14 2127
走了就别回头了
走了就别回头了 2020-12-23 20:27

I\'ve installed Material for angular,

I\'ve imported on my app module MatIconModule (with import { MatIconModule } from \'@angular/material/icon\';)

相关标签:
14条回答
  • 2020-12-23 20:45

    The full solution can be :

    Step one

    You have to import MatIconModule in your project, in my project I import the necessary component in a separate file then I import it in the AppModule, you can use this or import them directly :

    import { NgModule } from "@angular/core";
    import { MatButtonModule } from '@angular/material';
    import { MatIconModule } from '@angular/material/icon';
    
    @NgModule({
        imports: [MatIconModule, MatButtonModule], // note the imports 
        exports: [MatIconModule, MatButtonModule], // and the exports
    })
    export class MaterialModule { }
    

    Step two

    Load the icon font in your index.html :

    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    
    0 讨论(0)
  • 2020-12-23 20:48

    Add CSS stylesheet for Material Icons!

    Add the following to your index.html:

    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

    Refer - https://github.com/angular/material2/issues/7948

    0 讨论(0)
  • 2020-12-23 20:53

    In my case the icons did not show up because I has screwed up my fonts by using !important. Taking that out caused the icons to appear.

    0 讨论(0)
  • 2020-12-23 20:56

    Wrong Icon Name : Some Material Icon name is wrong.

    For example : Material Icon provides filter_alt for

    <mat-icon aria-hidden="false" aria-label=" filter icon">filter_alt</mat-icon>
    

    but it shows up

    0 讨论(0)
  • 2020-12-23 20:58

    If using SASS you only need to add this line to your main .scss file:

    @import url("https://fonts.googleapis.com/icon?family=Material+Icons");
    

    If you prefer to avoid fetching icons from google you can also self-host the icons as described in Material Icons Guide:

    For those looking to self host the web font, some additional setup is necessary. Host the icon font in a location, for example https://example.com/material-icons.woff and add the following CSS rule:

    @font-face {
      font-family: 'Material Icons';
      font-style: normal;
      font-weight: 400;
      src: url(https://example.com/MaterialIcons-Regular.eot); /* For IE6-8 */
      src: local('Material Icons'),
        local('MaterialIcons-Regular'),
        url(https://example.com/MaterialIcons-Regular.woff2) format('woff2'),
        url(https://example.com/MaterialIcons-Regular.woff) format('woff'),
        url(https://example.com/MaterialIcons-Regular.ttf) format('truetype');
    }
    

    In addition, the CSS rules for rendering the icon will need to be declared to render the font properly. These rules are normally served as part of the Google Web Font stylesheet, but will need to be included manually in your projects when self-hosting the font:

    .material-icons {
      font-family: 'Material Icons';
      font-weight: normal;
      font-style: normal;
      font-size: 24px;  /* Preferred icon size */
      display: inline-block;
      line-height: 1;
      text-transform: none;
      letter-spacing: normal;
      word-wrap: normal;
      white-space: nowrap;
      direction: ltr;
    
      /* Support for all WebKit browsers. */
      -webkit-font-smoothing: antialiased;
      /* Support for Safari and Chrome. */
      text-rendering: optimizeLegibility;
    
      /* Support for Firefox. */
      -moz-osx-font-smoothing: grayscale;
    
      /* Support for IE. */
      font-feature-settings: 'liga';
    }
    
    0 讨论(0)
  • 2020-12-23 20:58

    In my case, there was a style applied that overrides font family. So, I added font family style explicitly like this:

    .material-icons{
        font-family: 'Material Icons' !important;
    }
    
    0 讨论(0)
提交回复
热议问题