Vue.js中全局替换字体及font-family 自定义字体

全局字体替换

  1. 添加自定义字体
    首先,你需要将自定义字体文件(如.ttf, .woff, .woff2等格式)添加到项目的静态资源目录,通常是src/assets下。

  2. 链接字体文件
    接下来,在项目的主入口文件(通常是src/main.js)或者在public/index.html头部添加CSS链接,以加载字体文件。如果是在Vue CLI项目中,你可能需要在public目录下的index.html中添加:

    <link rel="stylesheet" href="<path-to-your-fonts-css>">
    或
    import '@/assets/css/index.css'

这里的应该指向你创建的CSS文件,该文件包含了字体的@font-face规则。

  1. 编写@font-face规则
    在你的CSS文件中,编写@font-face规则来定义自定义字体:

    @font-face {
    font-family: 'YourFontName';
    src: url('<path-to-your-font-file>.woff2') format('woff2'),
       url('<path-to-your-font-file>.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    }

确保路径正确指向字体文件。
如:

@font-face {  
    font-family: 'NotoSans-SC';  /* 定义一个新的字体名称 */  
    src: url('/src/assets/font/NotoSans-SC.ttf');  /* 指定字体文件的URL和格式 */  
    font-weight: normal;  /* 设置字体的粗细 */  
    font-style: normal;  /* 设置字体的样式(如斜体) */  
}
  1. 设置全局font-family
    在Vue项目中,你可以通过在src/App.vue或全局样式文件(如src/styles/global.css)中设置font-family属性来全局应用自定义字体:

    body {
    font-family: 'YourFontName', sans-serif;
    }

这样,整个应用将使用YourFontName字体,如果该字体不可用,则回退到默认的无衬线字体。

使用自定义字体图标

  1. 引入字体图标库
    对于字体图标,如Font Awesome或Iconfont,你同样需要将图标库的字体文件添加到项目中,并在CSS中定义使用规则。

  2. 在组件中使用字体图标
    在Vue组件中使用字体图标时,可以像使用普通HTML元素一样使用标签,并添加相应的类名:

    <i class="fa fa-windows"></i>

    确保你的CSS中包含了对字体图标的定义,如:

    .fa-windows:before {
    content: "\f1eb";
    }

    其中\f1eb是该图标在字体库中的Unicode字符编码。

字体格式比较

OTF (OpenType Font):

特点:支持高级排版特性,如连字、替代字符。
优点:兼容性好,适用于复杂排版需求。
选择原因:适合需要高质量排版的项目。

TTF (TrueType Font):

特点:广泛使用,支持大多数操作系统。
优点:良好的可读性,适合屏幕显示。
缺点:文件相对较大,不支持部分高级排版特性。

WOFF/WOFF2 (Web Open Font Format):

特点:专为网页设计,基于压缩的 TTF/OTF。
优点:文件小,加载快,支持现代浏览器。
缺点:不兼容较旧的浏览器。

EOT (Embedded OpenType):

特点:微软开发,主要用于旧版 IE 浏览器。
优点:支持 IE 浏览器。
缺点:逐渐被淘汰,不支持其他浏览器。