ionic change default font

2019-04-04 08:03发布

I know this question is asked and answered before in the links below. I want to change the default font without having to add to every css.

Things I have tried:

  1. Changing the .tff, .eot, .woff, .svg file directly to merge my fonts and ionicons
  2. Tried to implement the font by specifying it in html and css file (it works, but i want it to be default)
  3. Overwrite the www/lib/ionic/fonts with open-sans font (the ionicons disappear)
  4. When i use the first link (all formatting is gone, only left with text and buttons) I also tried placing the font-face on top and bottom in scss/ionic.app.scss

Please help! The answers i have seen are instructions but no explanation how it works. I don't know how "ionic setup sass" works/what it does. How gulp plays a part in this.

https://forum.ionicframework.com/t/how-to-change-the-font-of-all-texts-in-ionic/30459

https://forum.ionicframework.com/t/change-font-family-and-use-ionicons-icons/26729

5条回答
男人必须洒脱
2楼-- · 2019-04-04 08:23

You don't want to replace the icon font by the way, so you should use the CSS3 not() property

For example, in app.scss :

  @import url(https://fonts.googleapis.com/css?family=Varela+Round);

  *:not(ion-icon) {
    font-family: 'Varela Round', sans-serif!important;
  }
查看更多
爷的心禁止访问
3楼-- · 2019-04-04 08:25

You can simply include your icons as svg format.

Here's a list with all the latest ionicons: https://github.com/Orlandster1998/ionicons-svg

查看更多
Lonely孤独者°
4楼-- · 2019-04-04 08:28

For Ionic 2: Download the fonts from fonts.google.com and paste it in your assets folder. Now in your scss file do the following:

@font-face {
font-family: MyFont;
src: url("../assets/fonts/Lato-Regular.ttf");
}

body, span, button, h1, h2, h3, h4, h5, h6, p, ion-item, ion-title {
font-family: 'MyFont' !important;
}
查看更多
时光不老,我们不散
5楼-- · 2019-04-04 08:34

Import all the font files in to your app.

Example:

@font-face {
    font-family: 'Lato-Light';
    src: url('../fonts/Lato-Light.eot') format('embedded-opentype'), url('../fonts/Lato-Light.woff') format('woff'), url('../fonts/Lato-Light.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

If you want this font in entire app ,Just give like this

* {
    font-family: 'Lato-Light' !important;
}

If you have any doubt.Please let me know.Thanks

查看更多
甜甜的少女心
6楼-- · 2019-04-04 08:48

The correct solution for Ionic 2 should be to change the $font-family-base variable and its friends. That's the way Ionic is made to do it. It gives you more control (like having different fonts per platform), and it avoids the !important keyword, which is always a good thing.

Using Ionic 3.3, go to your variables.scss and find the section "Shared variables". Add these lines:

$font-family-base: 'MyFont';
$font-family-ios-base: 'MyFont';
$font-family-md-base: 'MyFont';
$font-family-wp-base: 'MyFont';
查看更多
登录 后发表回答