html中加载字体
- 行业动态
- 2025-05-02
- 4044
使用 @font-face 加载自定义字体
@font-face 是 CSS 提供的规则,允许将本地字体文件定义为可使用的网络字体,需配合 CSS 规则声明字体名称和样式。
步骤说明:
- 准备字体文件(如
.ttf
.woff
.woff2
格式) - 在 CSS 中定义 @font-face 规则:
@font-face { font-family: 'CustomFont'; / 自定义字体名称 / src: url('fonts/CustomFont.woff2') format('woff2'), url('fonts/CustomFont.woff') format('woff'); font-weight: normal; font-style: normal; }
- 在元素样式中调用:
body { font-family: 'CustomFont', sans-serif; }
关键属性表:
| 属性 | 作用 | 示例值 |
|—————|——————————|—————————|
| font-family | 定义字体名称 | ‘MyFont’ |
| src | 指定字体文件路径及格式 | url(‘font.woff2’) format()|
| font-weight | 设置权重(400=正常,700=粗体)| 400 |
| font-style | 定义样式(正常/斜体/倾斜) | italic |
| unicode-range | 限制字符范围(优化性能) | U+0000-00FF |
通过 Google Fonts 加载网络字体
Google Fonts 提供大量免费开源字体,通过链接 CSS 文件即可快速使用。
实现步骤:
- 访问 Google Fonts 选择字体
- 复制提供的
<link>
标签到 HTML<head>
:<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
- 在 CSS 中调用:
body { font-family: 'Roboto', sans-serif; }
参数说明表:
| 查询参数 | 作用 | 示例 |
|——————|———————————-|——————————-|
| family= | 指定字体家族名称 | Roboto |
| weight@ | 加载不同粗细版本(用;分隔) | 400,700 |
| display= | 字体加载策略 | swap(默认)、blockfallback |
| subset= | 优化加载语言子集 | latin,cyrillic |
使用外部字体库(如 Typekit/Fonts.com)
商业字体库提供专业字体,需注册账号获取授权代码。
典型流程:
- 在字体平台选择并授权字体
- 嵌入生成的脚本代码:
<script src="https://use.typekit.net/xxxxx.js"></script> <script>try{Typekit.load({async:true});}catch(e){}`
- 通过 CSS 调用字体族名称
设置字体栈(Font Fallback)
当指定字体不可用时,按顺序回退到备选字体。
示例代码:
h1 { font-family: 'SpecialFont', 'Arial Narrow', Arial, sans-serif; }
优先级策略表:
| 优先级 | 说明 |
|—————-|———————————-|
| 首个字体 | 优先尝试匹配的字体 |
| 通用字体族 | 如 serif/sans-serif/monospace |
| 系统安全字体 | 保证所有设备都显示(如 Arial) |
| 通用备选方案 | 最后使用 sans-serif/serif |
常见问题与解答
Q1:如何检测自定义字体是否生效?
A1:可通过开发者工具检查:
- 选中应用字体的元素,查看 computed 样式中的 font-family
- 输入生僻字符(如中文/日文),确认字符是否显示正确
- 临时修改字体名称,观察渲染变化
Q2:@font-face 需要包含哪些字体格式?
A2:为兼容不同浏览器,建议包含:
.woff2
(现代浏览器,压缩格式).woff
(旧版浏览器).ttf
(移动端备用).svg
(iOS 早期版本)
实际可根据目标用户群体精简格式,但至少需要.woff2
+ `.w