字体图标在Safari中不显示的主因是字体文件加载失败、CORS配置缺失、font-display策略不当或本地同名字体干扰,需检查Network中字体状态码、服务器Access-Control-Allow-Origin响应头、font-display值及系统字体册冲突。
字体图标(Icon Font)在 Safari 中不显示,通常不是字体本身的问题,而是 Safari 对 Web 字体加载、跨域策略或 CSS 渲染的限制更严格所致。重点排查字体文件加载状态、CORS 配置、font-display 行为和本地字体冲突。
字体图标本质是 Web 字体,需确保 @font-face 指向的 .woff/.woff2 文件能被 Safari 正常请求并返回 200 状态。
font/woff2)、或响应头缺失 Access-Control-Allow-Origin
Safari 对 font-display: optional 或 font-display: swap 的行为较保守,尤其在首屏渲染时可能跳过加载缓慢的字体。
@font-face 是否设置了 font-display: block 或 swap;建议优先使用 swap,避免图标长时间空白@font-face 中混用多个 src 格式但缺少 fallback,例如只写 url('icon.woff') 而未提供 .woff2,Safari 可能因解析失败直接放弃加载document.fonts.check("16px 'YourIconFontName'") 验证字体是否已就绪macOS 系统若安装了同名字体(如 FontAwesome、Ionicons 的桌面版),Safari 可能意外调用本地字体而非网页字体,导致图标乱码或不显示。
font-family 声明是否加了引号且拼写完全一致,例如 font-family: "Font Awesome 5 Free" 不可简写为 "FontAwesome"
font-family 和 font-src 实际生效值部分广告/脚本拦截扩展(如 uBlock Origin、AdGuard)或 Safari 自带的“阻止跨站跟踪”会误判字体资源为追踪行为而拦截。