2026-01-23 05:25:16
font-display: swap 的加载行为:浏览器会立即使用系统字体渲染文字,同时在后台加载自定义字体,待自定义字体加载完成后自动替换系统字体。其核心逻辑是优先保证内容快速显示,避免空白期(FOIT),但可能导致视觉上的字体切换“跳动”。
font-display: fallback 的加载行为:浏览器会短暂等待自定义字体加载(时间窗口约100ms),若在此期间未完成加载,则永久使用系统字体,后续即使字体加载完成也不再替换。其核心逻辑是平衡加载速度与视觉一致性,避免字体切换。
详细说明font-display: swap 的工作机制
立即渲染:浏览器不会阻塞文字显示,而是直接使用用户设备的系统字体(如 Arial、Helvetica 等)渲染内容,确保用户能第一时间看到文字。
后台加载:在显示系统字体的同时,浏览器会在后台异步加载自定义字体文件(如 WOFF2 格式)。
自动替换:一旦自定义字体加载完成,浏览器会立即将已显示的文字从系统字体替换为自定义字体,无需用户刷新或交互。
适用场景:适合需要快速显示内容的场景(如新闻、博客等),尤其在网络状况较差时,能避免用户长时间面对空白页面。但替换过程可能导致文字布局轻微变化(如字重、宽度不同),产生视觉“跳动”。
font-display: fallback 的工作机制
短暂等待:浏览器会为自定义字体设置一个极短的加载时间窗口(通常约100ms),在此期间若字体加载完成,则使用自定义字体;若未完成,则放弃等待。
永久使用系统字体:若时间窗口内字体未加载完成,浏览器会永久使用系统字体,后续即使字体加载完成也不再替换,避免视觉不一致。
适用场景:适合追求视觉一致性的场景(如品牌官网、设计类网站),尤其当自定义字体是品牌核心元素时,可避免因字体切换破坏整体风格。但若网络较差或字体文件较大,用户可能始终看不到自定义字体。
优先选 swap 的情况
内容可读性优先:如新闻、文档类网站,需确保用户能立即阅读内容,避免因字体加载延迟影响体验。
网络环境较差:在移动端或网络不稳定的情况下,swap 能最大限度减少空白期,提升容错性。
字体文件较大:若自定义字体体积较大(如包含多种字重、语言支持),加载时间较长,swap 可避免用户长时间等待。
优先选 fallback 的情况
视觉一致性优先:如品牌官网、设计作品集,需保持字体风格统一,避免因替换导致布局错乱或风格突变。
字体文件较小:若自定义字体体积较小(如仅包含必要字符),且网络状况良好,fallback 能在短暂等待后稳定显示自定义字体。
避免视觉跳动:对用户体验要求较高的场景(如电商产品页),需减少任何可能干扰用户注意力的元素,包括字体切换。