最佳实践

本文档提供使用千字网CDN的最佳实践建议,帮助你优化字体使用和提升用户体验。

目录


性能优化

1. 精确选择字体

原则:只引用页面实际使用的字体

错误做法

/* 引用所有字体,浪费资源 */
@import url('https://hanzi.bluu.pl/main.css');

正确做法

/* 只引用需要的字体 */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

优势

2. 使用加速域名

推荐域名优先级

  1. https://hanzi.itedev.com - 加速域名,速度最快
  2. https://hanzi.bluu.pl - 备用域名(仅可在Codeberg Pages中使用)
  3. https://hanzi.qzz.io - Cloudflare 代理

示例

/* 优先使用加速域名 */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

3. 合理设置 font-display

不同场景的推荐值

场景 推荐值 说明
关键标题 block 确保字体加载完成再显示
正文文本 swap 快速显示内容,提升体验
装饰性字体 optional 可选字体,不影响核心内容

示例

/* 标题使用 block */
h1, h2, h3 {
    font-family: 'Source Han Sans VF', sans-serif;
    font-display: block;
}

/* 正文使用 swap */
p, div {
    font-family: 'Source Han Sans VF', sans-serif;
    font-display: swap;
}

4. 预加载关键字体

适用场景

实现方法

<head>
    <!-- 预加载字体CSS -->
    <link rel="preload" href="https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css" as="style">
    
    <!-- 预加载字体文件 -->
    <link rel="preload" href="https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/xxx.woff2" as="font" crossorigin>
    
    <link rel="stylesheet" href="style.css">
</head>

5. 避免重复引用

错误做法

/* 在多个文件中重复引用同一字体 */
/* main.css */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

/* header.css */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

/* footer.css */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

正确做法

/* 在主CSS文件中引用一次 */
/* main.css */
@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");

/* 其他CSS文件直接使用字体 */
/* header.css */
h1 {
    font-family: 'Source Han Sans VF', sans-serif;
}

/* footer.css */
footer {
    font-family: 'Source Han Sans VF', sans-serif;
}

用户体验

1. 设置合理的字体回退

原则:确保在任何情况下都有可用的字体

示例

body {
    font-family: 'Source Han Sans VF', 
                 'PingFang SC', 
                 'Microsoft YaHei', 
                 sans-serif;
}

回退顺序

  1. 千字网CDN字体
  2. 系统中文字体
  3. 系统默认无衬线字体

2. 优化字体大小和行高

推荐值

body {
    font-size: 18px;      /* 适合大多数屏幕 */
    line-height: 1.6;     /* 提升可读性 */
}

h1 {
    font-size: 2em;       /* 相对大小 */
    line-height: 1.2;     /* 标题行高较小 */
}

p {
    font-size: 1em;       /* 继承body大小 */
    line-height: 1.6;     /* 正文行高较大 */
}

3. 响应式字体大小

移动端优化

/* 移动端使用较小字体 */
@media (max-width: 768px) {
    body {
        font-size: 16px;
    }
    
    h1 {
        font-size: 1.5em;
    }
}

/* 桌面端使用标准字体 */
@media (min-width: 769px) {
    body {
        font-size: 18px;
    }
    
    h1 {
        font-size: 2em;
    }
}

4. 避免字体闪烁

方法

  1. 使用 font-display: swap
  2. 预加载字体
  3. 设置合理的回退字体

示例

@font-face {
    font-family: 'Source Han Sans VF';
    font-display: swap;
}

body {
    font-family: 'Source Han Sans VF', 'PingFang SC', sans-serif;
}

开发实践

1. 使用CSS变量管理字体

优势:便于统一管理和修改

示例

:root {
    --font-primary: 'Source Han Sans VF';
    --font-secondary: 'Source Han Serif VF';
    --font-mono: 'Source Han Sans VF', monospace;
}

body {
    font-family: var(--font-primary), sans-serif;
}

h1, h2, h3 {
    font-family: var(--font-secondary), serif;
}

code, pre {
    font-family: var(--font-mono);
}

2. 模块化字体引用

推荐结构

styles/
├── base/
│   ├── fonts.css      # 字体引用
│   ├── reset.css      # 样式重置
│   └── typography.css # 排版样式
├── components/
│   ├── button.css
│   └── card.css
└── pages/
    ├── home.css
    └── about.css

base/fonts.css

@import url("https://hanzi.itedev.com/fonts/Source+Han+Sans+VF/result.css");
@import url("https://hanzi.itedev.com/fonts/Source+Han+Serif+VF/result.css");

base/typography.css

body {
    font-family: 'Source Han Sans VF', sans-serif;
    font-size: 18px;
    line-height: 1.6;
}

h1, h2, h3 {
    font-family: 'Source Han Serif VF', serif;
}

3. 条件加载字体

适用场景:不同页面使用不同字体

示例

/* 首页使用无衬线字体 */
.home-page {
    font-family: 'Source Han Sans VF', sans-serif;
}

/* 文章页使用衬线字体 */
.article-page {
    font-family: 'Source Han Serif VF', serif;
}

4. 使用字体加载事件

JavaScript 示例

document.fonts.ready.then(function () {
    console.log('所有字体加载完成');
    // 执行字体加载后的操作
});

document.fonts.load('16px "Source Han Sans VF"').then(function () {
    console.log('特定字体加载完成');
    // 执行特定字体加载后的操作
});

维护建议

1. 定期检查字体更新

建议频率:每月检查一次

检查内容

2. 监控字体加载性能

工具推荐

关键指标

3. 备份字体配置

建议做法

  1. 保存字体引用配置
  2. 记录字体版本信息
  3. 建立回退方案

示例配置记录

## 字体配置记录

### 2026-03-27
- 主字体:Source Han Sans VF
- 衬线字体:Source Han Serif VF
- CDN域名:https://hanzi.itedev.com
- 版本:1.0.0

4. 测试字体兼容性

测试浏览器

测试设备

5. 优化字体使用策略

定期评估

优化建议


常见错误

1. 过度使用字体

错误:引用过多字体,影响性能

解决:只引用必要的字体

2. 忽视字体回退

错误:只设置单一字体,无回退方案

解决:设置合理的字体回退链

3. 不考虑移动端

错误:只在桌面端优化字体

解决:针对移动端进行字体优化

4. 忽视字体加载状态

错误:不处理字体加载失败的情况

解决:使用字体加载事件和回退方案


总结

遵循这些最佳实践,你可以:

  1. 提升性能:减少加载时间,优化用户体验
  2. 改善兼容性:确保在各种环境下正常工作
  3. 便于维护:简化字体管理,降低维护成本
  4. 提升质量:提供更好的视觉体验

记住,好的字体使用策略是性能、兼容性和用户体验的平衡。


相关文档