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

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

一、准备字体文件

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

  • .ttf

  • .woff

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

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

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

二、在 CSS 中声明字体

在全局样式文件中(如 main.cssindex.cssApp.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. 在页面中应用

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

相关推荐
candyTong6 小时前
一觉醒来,大模型就帮我排查完页面性能问题
前端·javascript·架构
魔术师Grace6 小时前
我给 AI 做了场入职培训
前端·程序员
玩嵌入式的菜鸡7 小时前
网页访问单片机设备---基于mqtt
前端·javascript·css
前端一小卒7 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
滑雪的企鹅.8 小时前
HTML头部元信息避坑指南大纲
前端·html
一拳不是超人8 小时前
老婆天天吵吵要买塔罗牌,我直接用 AI 2 小时写了个在线塔罗牌
前端·ai编程
阿丰资源10 小时前
SpringBoot+Vue实战:打造企业级在线文档管理系统
vue.js·spring boot·后端
excel10 小时前
如何解决 Nuxt DevTools 中关于 unstorage 包的报错
前端
Rust研习社10 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
C澒10 小时前
AI 生码 - API2Code:接口智能匹配与 API 自动化生码全链路设计
前端·低代码·ai编程