本文详解在 SCSS 模块化项目(如 React + CSS Modules)中导入本地 Google 字体的完整流程,涵盖 @font-face 声明、路径配置、引用语法及常见错误(如字体名引号缺失、大小写/空格不一致等),确保字体成功渲染。
本文详解在 scss 模块化项目(如 react + css modules)中导入本地 google 字体的完整流程,涵盖 `@font-face` 声明、路径配置、引用语法及常见错误(如字体名引号缺失、大小写/空格不一致等),确保字体成功渲染。
在基于 SCSS 的模块化前端项目(例如使用 .module.scss 文件的 React 应用)中,正确引入并应用自定义字体需兼顾 声明规范 与 引用一致性。你已在 fonts.scss 中通过 @font-face 注册了 Poller One 和 Raleway 字体,这是正确的第一步;但问题往往出在后续调用环节。
CSS 规范要求:当 font-family 名称包含空格、数字或特殊字符(如 Poller One)时,必须使用英文双引号包裹。否则浏览器会将其解析为多个独立的字体名(如 Poller 和 One),导致回退到系统默认字体。
// ✅ 正确:在 home.module.scss 中引用@import "../../fonts.scss";h1 { font-family: "Poller One", "Raleway", sans-serif;}
注意:font-family 值中的 "Poller One" 必须与 @font-face 中 font-family: "Poller One" 的字符串完全一致(包括大小写、空格、标点)。建议统一复制粘贴避免手误。
@font-face { font-family: "Poller One"; src: local("Poller One"), url("./Fonts/PollerOne.woff2") format("woff2"), url("./Fonts/PollerOne.ttf") format("truetype"); font-weight: normal; font-style: normal;}
导入本地字体 ≠ 仅写 @font-face。核心三要素缺一不可:
① @font-face 中 font-family 命名规范(带引号、无歧义);
② 使用处 font-family 值严格复刻声明名(含引号);
③ 文件路径可访问 + 构建工具支持字体资源处理。
遵循以上步骤,即可稳定在 SCSS 模块中启用任意 Google Fonts 下载字体。