在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;
,同时需注意字体加载策略(如预加载、子集化)以优化性能。