在CSS中,font-family属性用于定义文本的字体族,即指定浏览器在显示文本时应使用的字体,通过合理设置font-family,可以确保网页在不同设备和浏览器上呈现出预期的视觉效果,同时提供字体回退机制以应对用户系统中未安装特定字体的情况,以下从语法规则、常用字体族、优先级策略、最佳实践及兼容性处理等方面详细说明如何定义font-family。

基本语法与规则
font-family属性的语法格式为:font-family: 字体族名1, 字体族名2, ...;,其中多个字体名称以逗号分隔,形成字体回退列表,浏览器会按顺序尝试加载列表中的字体,直到找到用户系统中可用的字体为止,字体名称分为两类:字体系列名称(如serif、sans-serif等通用字体族)和特定字体名称(如Arial、"Times New Roman"等),特定字体名称包含空格或特殊符号时,需用单引号或双引号包裹,font-family: "Microsoft YaHei", sans-serif;。
常用字体分类与示例
-
无衬线字体(sans-serif)
特点是笔画简洁、现代感强,适合屏幕显示,常用字体包括:- 系统默认:
Arial、Helvetica、Verdana - 中文字体:
"Microsoft YaHei"、"PingFang SC"、"Helvetica Neue"
示例:font-family: Arial, "Helvetica Neue", sans-serif;
- 系统默认:
-
衬线字体(serif)
特点是笔画末端有装饰性衬线,适合大段印刷文本,常用字体包括:- 系统默认:
Times New Roman、Georgia - 中文字体:
"SimSun"、"KaiTi"、"Times New Roman"
示例:font-family: "Times New Roman", Georgia, serif;
- 系统默认:
-
等宽字体(monospace)
每个字符宽度相同,适合代码显示,常用字体包括:
(图片来源网络,侵删)Courier New、Consolas、"Monaco"
示例:font-family: "Consolas", "Courier New", monospace;
-
手写字体与装饰字体
如"Comic Sans MS"(手写体)、"Impact"(粗体装饰)等,需谨慎使用以避免影响阅读体验。
字体回退策略与优先级
为确保字体始终可用,font-family列表需遵循以下原则:
- 优先指定具体字体:将最期望使用的字体放在列表首位,如
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;。 - 通用字体族作为兜底:列表末尾必须包含一个通用字体族(如
serif、sans-serif),作为最终回退选项。 - 跨平台兼容性:中文字体需考虑Windows、macOS、Linux等系统的默认字体差异,例如同时指定
"Microsoft YaHei"(Windows)和"PingFang SC"(macOS)。
最佳实践与注意事项
- 避免过度依赖特定字体:除非通过
@font-face引入自定义字体,否则应优先使用系统常见字体。 - 性能优化:自定义字体需通过
@font-face引入时,建议使用font-display: swap;实现字体加载时的文本可见性替换。 - 响应式适配:在不同设备上测试字体显示效果,避免小屏幕设备上使用过大的衬线字体导致阅读困难。
@font-face与自定义字体
当需要使用网络字体或用户未安装的字体时,可通过@font-face定义字体源:
@font-face {
font-family: "MyCustomFont";
src: url("fonts/myfont.woff2") format("woff2"),
url("fonts/myfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
随后在font-family中调用:font-family: "MyCustomFont", sans-serif;,需注意字体文件的版权问题及加载性能。

浏览器兼容性处理
不同浏览器对字体的支持存在差异,
- 中文字体:Windows默认为
"Microsoft YaHei",macOS为"PingFang SC",Linux可能为"WenQuanYi Micro Hei"。 - 旧版浏览器:如IE9以下不支持
@font-face的woff2格式,需提供woff或ttf备用格式。
以下为常见操作系统的默认字体参考表:
| 操作系统 | 默认无衬线字体 | 默认衬线字体 | 默认等宽字体 |
|---|---|---|---|
| Windows | Microsoft YaHei | SimSun | Consolas |
| macOS | PingFang SC | PingFang SC (或 Songti) | Menlo |
| Linux | Sans (或 Ubuntu) | Serif (或 Noto Sans) | Monospace (或 DejaVu) |
相关问答FAQs
Q1: 为什么设置了font-family后,字体仍显示为默认字体?
A: 可能原因包括:1) 字体名称拼写错误或未用引号包裹含空格的名称;2) 用户系统中未安装指定的字体,且列表末尾缺少通用字体族作为回退;3) 自定义字体文件路径错误或格式不被浏览器支持,建议检查语法并确保字体回退列表完整。
Q2: 如何为网页加载自定义网络字体?
A: 可通过@font-face声明字体并引入字体文件(如Google Fonts、Adobe Fonts等平台提供的字体),或使用本地字体文件,从Google Fonts引入Roboto字体:
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
在CSS中调用:font-family: 'Roboto', sans-serif;,同时需注意字体加载策略(如预加载、子集化)以优化性能。
