在做网页时你可能会发现一个问题:明明一套字体就够用了,为什么 .ttf
、.woff
、.woff2
、.eot
、.otf
、.svg
这些字体格式都堆在一起?到底有什么区别?我要用哪一个才是最合适的?
今天我们就把这些字体格式一次说清楚,彻底搞明白它们的来龙去脉。
一、常见字体格式有哪些?
我们先来列一遍你会在前端开发中遇到的字体格式:
格式 | 名称 | 出现时间 | 是否推荐使用 | 主要用途 |
---|---|---|---|---|
.ttf |
TrueType Font | 1980s | ✅ | 桌面字体,基础格式 |
.otf |
OpenType Font | 1990s | ✅ | 支持更多特性的新版本字体 |
.eot |
Embedded OpenType | 1990s | ❌(淘汰) | IE 专用字体格式 |
.woff |
Web Open Font Format | 2009 | ✅ | 专为 Web 优化的字体格式 |
.woff2 |
Web Open Font Format 2 | 2012 | ✅✅ | 更小、更快的现代字体格式 |
.svg |
SVG Font | ~2001 | ❌(淘汰) | iOS 早期支持,但已不再推荐 |
二、每个字体格式到底有啥区别?
1. ttf — 最基础的 TrueType 字体
这是最常见的字体格式之一,支持大多数操作系统。几乎所有设计师的本地字体,都是 .ttf
或 .otf
结尾。
特点:
- 文件体积大
- 浏览器支持广泛(除了最古老的 IE)
推荐程度:⭐️⭐️(一般用于转换成 Web 字体格式)
2. otf — 支持高级排版的 OpenType 字体
.otf
是 .ttf
的“升级版”,支持更多的排版特性,比如连字(ligatures)、变体字形等。
特点:
- 更专业的排版支持
- 同样体积大
- 浏览器支持尚可,但不是最优格式
推荐程度:⭐️⭐️(适合高质量排版或作为源文件使用)
3. eot — 被 IE 束缚的古董字体格式
.eot
是微软专门为 IE6-8 推出的字体格式。
特点:
- 只支持 IE(还不是 Edge)
- 现在已经完全淘汰
- 如果你还需要兼容 IE8,那你太辛苦了
推荐程度:❌(可以不再管它了)
4. woff — 为 Web 而生的主力字体格式
.woff
是第一个专为 Web 优化的字体格式,压缩后体积更小,加载更快。
特点:
- 浏览器全面支持(IE9+)
- 支持字体版权信息嵌入
- 是实际部署时的主力格式之一
推荐程度:✅✅(常规 Web 字体首选)
5. woff2 — 更强压缩,现代浏览器的最爱
.woff2
是 .woff
的升级版,压缩率更高,大约可以再省 20% 文件体积。
特点:
- 支持 Chrome、Firefox、Edge、Safari(IE 不支持)
- 体积小,加载快
- 是现代 Web 的首选字体格式
推荐程度:🔥 强烈推荐!(兼容主流浏览器)
6. svg — 已退出历史舞台
.svg
字体曾用于 iOS 早期系统(如 iOS 4.3),现在已经不推荐使用了。
特点:
- 可以用 CSS 填充颜色、做动画
- 浏览器支持差
- 文件体积较大
推荐程度:❌(历史遗留格式)
三、我应该使用哪些字体格式?
现在开发网站,最推荐的组合是:
@font-face {
font-family: "MyFont";
src: url("myfont.woff2") format("woff2"), url("myfont.woff") format("woff");
}
.woff2
提供给现代浏览器使用,文件更小,速度更快。.woff
提供给兼容性稍差的浏览器作为备用。.ttf
、.otf
可作为设计源文件,但不推荐直接用于 Web。.eot
、.svg
可以彻底告别了。
四、字体文件太大怎么办?
可以使用字体子集工具(如 Fontmin、Transfonter)将字体文件精简,只保留用到的中文或英文字体。
举个例子:
原字体文件 1MB,提取后只保留“你好,世界”,最终可能只有几十 KB,加载速度提升巨大。