CSS调用本地字体对应的OpenType name字段及ID17异常加载问题咨询
CSS 调用本地安装字体的 OpenType name 记录读取规则
- 包括 Google Chrome 在内的主流桌面浏览器,在 Windows 平台调用本地已安装字体时,优先匹配
nameID = 1(Font Family,字体家族名)与nameID = 2(Font Subfamily,字体子家族名)的组合值;仅当 ID = 16(Typographic Family,印刷家族名)、ID = 17(Typographic Subfamily,印刷子家族名)取值符合 OpenType 规范时,才会将这两个值的组合作为可选匹配项。 - 你遇到的字体无法加载的问题,根因是 ID = 17 取值不符合规范:OpenType 标准明确要求 ID = 17 的取值仅可属于 Regular、Bold、Italic、BoldItalic 四类,当字体将 ID = 17 设置为「700W」「Sans」「Serif」等非标准值时,Windows 字体注册机制会判定该字体的印刷家族信息无效,不会将 ID = 16 + 17 的组合纳入浏览器可调用的字体名列表,同时异常的 ID = 17 值还会干扰常规的 ID = 1 + 2 组合的识别逻辑。
- 针对你测试的对应字体,可按以下方式操作:通过 FontForge 等字体编辑工具查看该字体
nameID = 1 的实际取值,直接将该值填入font-family即可,不要拼接 ID = 17 的非标准值;若安装后仍无法识别,建议重新安装字体时选择「为所有用户安装」,安装完成后重启 Chrome 再测试。
内容的提问来源于stack exchange,提问作者NKSL2001
相关产品推荐
相关产品推荐

