讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在CSS中使用@font-face引入自定义字体?

阿丽同学_6035

阿丽同学_6035

发布时间:2026-07-11 06:43:14

|

441人浏览过

|

来源于php中文网

原创

font-family名称必须加引号且大小写完全一致,浏览器严格字符串匹配;src路径须相对于CSS文件位置;@font-face需置于CSS最前并配font-display:swap。

如何在css中使用@font-face引入自定义字体?

font-family 名称必须加引号且大小写完全一致

浏览器对 font-family 是严格字符串匹配,不区分“语义”只认字面值。声明时写了 'HarmonyOS Sans',调用时写 font-family: HarmonyOS Sans(无引号)或 font-family: "harmonyos sans"(小写),就等于没写。

中文字体、带空格/连字符/数字的名称,必须用英文单引号或双引号包裹,且引号类型、空格、大小写要和 @font-face 块里一模一样:

  • ✅ 正确:@font-face { font-family: 'Zhi Mang Xing'; } + body { font-family: 'Zhi Mang Xing', sans-serif; }
  • ❌ 错误:font-family: Zhi Mang Xing;(漏引号)、font-family: "zhi mang xing";(小写)、font-family: ‘Zhi Mang Xing’;(中文引号)

建议用 CSS 变量统一管理,比如 :root { --font-main: 'Inter Variable'; },再写 font-family: var(--font-main), sans-serif;,避免拼错。

src 路径必须相对于 CSS 文件位置

浏览器解析 url() 时,基准点永远是当前 CSS 文件所在目录,不是 HTML 页面路径,也不是网站根目录。这是 80% 字体 404 的根源。

立即学习“前端免费学习笔记(深入)”;

举例:CSS 文件在 /css/main.css,字体文件在 /fonts/inter.woff2,那么 src 必须写成 url('../fonts/inter.woff2'),而不是 url('/fonts/inter.woff2')(绝对路径易触发 CORS)或 url('fonts/inter.woff2')(少了一级 ../)。

验证方法:打开 DevTools → Network → Filter “Font”,看请求 URL 是否和实际文件位置一致;404 就立刻核对相对路径。

构建工具(如 Vite/Webpack)中需额外注意:

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
  • Vite 默认不处理 url('./fonts/xxx.woff2') 中的相对路径,需确认是否启用 assetsInlineLimit 或将字体放到 public/ 目录下
  • Webpack 需确保 file-loader 或 asset-modules 已正确配置,否则字体不会被复制进输出目录

src 列表必须按格式优先级顺序写,且 format() 值严格对应后缀

src 不是随便列几个 URL 就行——浏览器从左到右尝试加载,第一个能解析成功的就停。顺序错了,旧浏览器可能直接跳过整条规则。

推荐顺序:woff2 → woff → truetype(即 .ttf):

  • woff2 放最前:现代浏览器压缩率高、加载快
  • woff 次之:IE9+、iOS 5.1+、Android 4.0+ 都支持
  • truetype 最后:兼容老 Android 和部分桌面端,但无压缩

format() 的值必须和文件后缀严格对应:

  • .woff2 → format('woff2')(不能写成 'woff 2' 或 'woff2 ')
  • .ttf → format('truetype')(不能写成 'ttf' 或 'TrueType')
  • 每个 url() 后必须跟 format(),漏掉一个,Safari 和旧 Edge 会静默忽略整条 src 声明
  • 末尾不能有多余逗号(如 url(...) format(...),),Safari 会直接解析失败

@font-face 必须写在 CSS 解析顺序的前面

@font-face 规则必须在首次用到该 font-family 之前被浏览器读取,否则会跳过渲染——哪怕后面写了正确的调用,字体也不会加载。

常见错误:

  • 把 @font-face 放在 CSS 文件末尾
  • 塞进 Vue 的 <style scoped> 或 React 的 CSS-in-JS 作用域里,导致作用域隔离或解析时机错乱
  • 用 @import 加载含 @font-face 的外部 CSS —— 它会阻塞关键渲染路径,且部分浏览器延迟执行

✅ 推荐位置:

  • CSS 文件最开头(非嵌套、非条件块)
  • HTML 的 <style></style> 标签内(非 @import 引入的外部 CSS)

别忘了加 font-display: swap——它必须写在 @font-face 块内部,不是外部选择器里。不加的话,Chrome/Firefox 默认 FOIT(文字不可见直到字体加载完),用户可能看到几秒白屏。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

4136

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

917

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1778

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

3286

2023.08.01

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

6485

2023.08.10

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

5531

2023.08.10

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

1897

2023.08.21

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2611

2023.08.22

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

20

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.8万人学习

CSS教程
CSS教程

共754课时 | 95.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn