0

0

使用 @font-face 引入自定义字体:完整教程

花韻仙語

花韻仙語

发布时间:2025-09-01 18:29:00

|

231人浏览过

|

来源于php中文网

原创

使用 @font-face 引入自定义字体:完整教程

本文将详细介绍如何使用 CSS 的 @font-face 规则引入并应用自定义字体。通过本文,你将学会如何在网页中使用下载的字体文件,避免浏览器默认字体带来的局限性,从而提升网页的视觉效果和个性化程度。我们将提供清晰的代码示例和注意事项,助你轻松掌握这一实用技巧。

使用 @font-face 引入自定义字体

@font-face 规则允许开发者在网页中使用服务器上的字体,而无需依赖用户设备上已安装的字体。这为网页设计提供了更大的灵活性和自由度,可以实现更加个性化的视觉效果。

1. 声明 @font-face 规则

首先,需要在 CSS 中声明 @font-face 规则。该规则定义了字体的名称、字体文件的路径等信息。

@font-face {
  font-family: 'MyCustomFont';
  src: url('path/to/my-custom-font.woff2') format('woff2'),
       url('path/to/my-custom-font.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
  • font-family: 指定字体的名称。这个名称将在后续的 CSS 规则中被引用,用于指定元素使用的字体。注意,名称要使用单引号或双引号包裹。
  • src: 指定字体文件的路径。可以使用相对路径或绝对路径。建议提供多种字体格式(如 WOFF2, WOFF, TTF, OTF)以兼容不同的浏览器。format() 函数用于指定字体文件的格式,帮助浏览器选择合适的字体文件。 WOFF2 格式是目前推荐的 Web 字体格式,因为它提供了更好的压缩率和性能。
  • font-weight: 指定字体的粗细。常见的取值有 normal (400), bold (700), lighter, bolder 以及数值 (100-900)。
  • font-style: 指定字体的样式。常见的取值有 normal (正常), italic (斜体), oblique (倾斜)。

2. 应用自定义字体

声明了 @font-face 规则后,就可以在 CSS 规则中使用 font-family 属性来应用自定义字体。

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

h1 {
  font-family: 'MyCustomFont', serif;
}

.special-text {
  font-family: 'MyCustomFont', cursive;
}

在上面的例子中,body 元素将使用 MyCustomFont 字体。如果浏览器无法加载或识别该字体,将回退到 sans-serif 字体。类似地,h1 元素和 .special-text 类将分别使用 serif 和 cursive 作为备用字体。

3. 确保字体文件路径正确

最常见的问题是字体文件路径错误。请仔细检查 src 属性中指定的字体文件路径是否正确。可以使用浏览器的开发者工具来检查字体文件是否成功加载。如果字体文件加载失败,开发者工具会显示相应的错误信息。

4. 浏览器缓存

有时候,即使字体文件路径正确,浏览器也可能无法正确加载字体。这可能是因为浏览器缓存了旧的字体文件。可以尝试清除浏览器缓存,或者使用强制刷新(Ctrl + Shift + R 或 Cmd + Shift + R)来重新加载页面。

灵云AI开放平台
灵云AI开放平台

灵云AI开放平台

下载

5. 字体格式兼容性

不同的浏览器对字体格式的支持程度不同。为了确保最佳的兼容性,建议提供多种字体格式,例如 WOFF2, WOFF, TTF 和 OTF。

示例代码

以下是一个完整的示例,展示了如何使用 @font-face 规则引入并应用自定义字体:

HTML (index.html):

<!DOCTYPE html>
<html>
<head>
  <title>Custom Font Example</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h1>This is a heading with a custom font.</h1>
  <p>This is a paragraph with a custom font.</p>
</body>
</html>

CSS (style.css):

@font-face {
  font-family: 'MyCustomFont';
  src: url('fonts/MyCustomFont-Regular.woff2') format('woff2'),
       url('fonts/MyCustomFont-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

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

h1 {
  font-family: 'MyCustomFont', serif;
}

目录结构:

my-project/
├── index.html
├── style.css
└── fonts/
    ├── MyCustomFont-Regular.woff2
    └── MyCustomFont-Regular.woff

注意事项

  • 字体授权: 确保你有权使用你所使用的字体。某些字体可能需要购买授权才能在网页上使用。
  • 字体文件大小: 字体文件的大小会影响网页的加载速度。尽量选择压缩率较高的字体格式(如 WOFF2),并对字体文件进行优化。
  • 跨域问题: 如果字体文件位于不同的域名下,可能会遇到跨域问题。需要配置服务器以允许跨域访问字体文件。通常通过设置 Access-Control-Allow-Origin HTTP 响应头来解决。

总结

@font-face 规则是 CSS 中一个非常强大的功能,它允许开发者在网页中使用自定义字体,从而实现更加个性化的视觉效果。通过本文的介绍,你应该已经掌握了如何使用 @font-face 规则引入并应用自定义字体。请记住,确保字体文件路径正确,提供多种字体格式,并注意字体授权和文件大小,以获得最佳的效果。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

888

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

464

2024.06.27

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

498

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

454

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

3648

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2930

2024.08.16

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

329

2023.10.09

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

480

2023.10.16

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

热门下载

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

精品课程

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

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 43.6万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号