正在加载...
CSS 网页字体
你已经会用 font-family、字号和字重。网页字体加载访客设备上未必自带的字形 —— 用 @font-face 声明,再像其他字体一样使用字族名,并平静地以后备收尾。
@font-face 的组成部分
📊 一眼看清 @font-face
| 部分 | 日常用途 |
|---|---|
font-family |
你起的名字,随后在 CSS 中使用 |
src |
字体文件位置(url(...),常带 format(...)) |
font-weight / font-style |
该文件代表哪种字形(regular、bold、italic…) |
font-display |
字体加载时文字如何表现(例如 swap) |
想成两步就够:用 @font-face 注册字形,再在普通规则里 调用同一个字族名。漏掉任一步,栈就永远找不到自定义文件。
最小 @font-face
给字形起清晰名称,把 src 指向站点(或 CDN)上的字体文件。
基础 @font-face
css
CSS Code
@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
提供多种格式
现代浏览器优先 woff2。其后列出 woff 可覆盖较旧浏览器。最好的格式写在最前。
先 woff2 后 woff
css
CSS Code
@font-face {
font-family: "Site Sans";
src:
url("/fonts/site-sans.woff2") format("woff2"),
url("/fonts/site-sans.woff") format("woff");
font-weight: 400;
font-style: normal;
}
font-display — 更早显示文字
font-display: swap 让浏览器先显示后备文字,字体到达后再替换 —— 往往好过长时间看不见文字。
Display swap
css
CSS Code
@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
使用你声明的字族
@font-face 之后,在规则里调用相同的 font-family 名称 —— 并保留通用后备。
应用自定义字族
css
CSS Code
body {
font-family: "Site Sans", system-ui, "Segoe UI", sans-serif;
font-size: 1rem;
line-height: 1.6;
}
平静的自托管习惯
只托管需要的字重,优先 woff2,设置 font-display,并始终保留系统/通用栈。
使用已加载粗体的标题
css
CSS Code
@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans-bold.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
h1 {
font-family: "Site Sans", Georgia, serif;
font-weight: 700;
}
自己动手
- 写一个带自定义
font-family名称和woff2src的@font-face块。 - 为
woff增加第二行src。 - 设置
font-display: swap。 - 在
body上应用"Your Name", sans-serif。 - 若有粗体文件,为字重
700另加一个@font-face—— 再在标题上用font-weight: 700。
常见错误
- 声明了
@font-face却从不在font-family里用那个确切名称 - 省略后备栈(文件失败时版面会坏)
- 加载大量未使用的字重与样式(页面变慢)
- 没有
font-display策略却让文字长时间不可见 - 把本课与 text-shadow / 效果混在一起(下一课才讲)
小结
@font-face注册自定义字族名并指向字体文件- 优先
woff2,可选再备woff font-display: swap常在加载时保持文字可读- 在 CSS 中用同一字族名并带系统/通用后备
- 只加载需要的字形;text-shadow 等效果是后续课程
🧠 测试您的知识
准备开始
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
8
问题
70%
及格要求
∞
时间
∞
尝试次数
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部