How to import a new font into a project - Angular 5

前端 未结 3 634
陌清茗
陌清茗 2020-12-02 19:51

I want to import a new font to my Angular 5 project.

I have tried:

1) Copying the file to assets/fonts/

2) adding it to .angular-cli.json

相关标签:
3条回答
  • 2020-12-02 20:07

    You can try creating a css for your font with font-face (like explained here)

    Step #1

    Create a css file with font face and place it somewhere, like in assets/fonts

    customfont.css

    @font-face {
        font-family: YourFontFamily;
        src: url("/assets/font/yourFont.otf") format("truetype");
    }
    

    Step #2

    Add the css to your .angular-cli.json in the styles config

    "styles":[
     //...your other styles
     "assets/fonts/customFonts.css"
     ]
    

    Do not forget to restart ng serve after doing this

    Step #3

    Use the font in your code

    component.css

    span {font-family: YourFontFamily; }
    
    0 讨论(0)
  • 2020-12-02 20:09

    the answer is already exist above, but I would like to add some thing.. you can specify the following in your @font-face

    @font-face {
      font-family: 'Name You Font';
      src: url('assets/font/xxyourfontxxx.eot');
      src: local('Cera Pro Medium'), local('CeraPro-Medium'),
      url('assets/font/xxyourfontxxx.eot?#iefix') format('embedded-opentype'),
      url('assets/font/xxyourfontxxx.woff') format('woff'),
      url('assets/font/xxyourfontxxx.ttf') format('truetype');
      font-weight: 500;
      font-style: normal;
    }
    

    So you can just indicate your fontfamily name that you already choosed

    NOTE: the font-weight and font-style depend on your .woff .ttf ... files

    0 讨论(0)
  • 2020-12-02 20:31

    You need to put the font files in assets folder (may be a fonts sub-folder within assets) and refer to it in the styles:

    @font-face {
      font-family: lato;
      src: url(assets/font/Lato.otf) format("opentype");
    }
    

    Once done, you can apply this font any where like:

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      font-family: 'lato', 'arial', sans-serif;
    }
    

    You can put the @font-face definition in your global styles.css or styles.scss and you would be able to refer to the font anywhere - even in your component specific CSS/SCSS. styles.css or styles.scss is already defined in angular-cli.json. Or, if you want you can create a separate CSS/SCSS file and declare it in angular-cli.json along with the styles.css or styles.scss like:

    "styles": [
      "styles.css",
      "fonts.css"
    ],
    
    0 讨论(0)
提交回复
热议问题