Vue 项目中如何引用本地字体(完整指南)

在前端开发中,我们经常会遇到需要使用自定义字体的场景,比如品牌字体、设计稿还原等。在 Vue 项目中引入本地字体其实非常简单,本文将一步步带你完整实现。

一、准备字体文件

首先,你需要下载好字体文件(常见格式):

  • .ttf

  • .woff

  • .woff2(推荐,体积更小)

然后将字体文件放到项目目录中,例如:

复制代码
src
 ├─ assets
 │   └─ fonts
 │       └─ myfont.woff2

二、在 CSS 中声明字体

在全局样式文件中(如 main.css、index.css 或 App.vue),使用 @font-face 声明字体:

复制代码
@font-face {
  font-family: "MyFont";
  src: url("@/assets/fonts/myfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

推荐写法(兼容性更好)

复制代码
@font-face {
  font-family: "MyFont";
  src: url("@/assets/fonts/myfont.woff2") format("woff2"),
       url("@/assets/fonts/myfont.woff") format("woff"),
       url("@/assets/fonts/myfont.ttf") format("truetype");
}

三、使用自定义字体

1. 全局使用

复制代码
body {
  font-family: "MyFont", sans-serif;
}

这样整个项目都会使用该字体。


2. 局部使用

复制代码
.title {
  font-family: "MyFont";
}

<div class="title">这是自定义字体</div>


四、常见问题及解决方案

1. 字体不生效

请检查以下几点:

  • 路径是否正确(推荐使用 @/assets/...)

  • font-family 名称是否一致

  • 是否被其他样式覆盖


2. 打包后字体 404

如果生产环境找不到字体,可以尝试以下方式:

方式一:使用相对路径
复制代码
src: url("../assets/fonts/myfont.ttf");
方式二:放入 public 目录

目录结构:

复制代码
public/fonts/myfont.ttf

引用方式:

复制代码
src: url("/fonts/myfont.ttf");

五、建议

在实际项目中,推荐:

  • 字体目录:src/assets/fonts

  • 字体格式优先级:

    woff2 > woff > ttf

原因:

  • woff2 体积最小,加载最快

  • woff 兼容性良好

  • ttf 作为兜底方案


六、总结

在 Vue 项目中引入本地字体的核心步骤只有三步:

  1. 放入字体文件

  2. 使用 @font-face 声明

  3. 在页面中应用

掌握这套流程后,你可以轻松实现设计稿中的各种字体效果,让项目更加专业和精致。

相关推荐
仿生狮子35 分钟前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
夏幻灵4 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
Lvan的前端笔记4 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习4 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194055 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风6 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn7 小时前
框架性能优化
前端
雪芽蓝域zzs8 小时前
第 5 节:Marker 点击弹出 InfoWindow 信息窗口
vue.js
回眸&啤酒鸭9 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013849 小时前
2026,程序员的时代拐点到了
android·前端·后端