自定义字体在TailwindCSSv3中不生效,通常因@font-face与tailwind.config.js配置未对齐。正确解法:使用extend.fontFamily扩展而非覆盖;将@font-face置于@tailwindbase之前;确保路径正确、字体名大小写及引号一致;并添加font-display:swap和format()声明。遵循这些步骤即
在 Tailwind CSS v3 中,自定义字体不生效的常见原因并非字体文件本身或浏览器问题,而是 @font-face 与 tailwind.config.js 之间配置不一致。字体名称、路径、声明顺序或配置方式中任何一个环节出错,Tailwind 都会静默回退到系统默认字体,且控制台不会显示错误提示。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
直接使用 theme.fontFamily 覆盖整个对象,而非 theme.extend.fontFamily,会导致 Tailwind v3 的默认字体族(sans、serif、mono)被完全清除。例如,fontFamily: { sans: [...] } 会覆盖整个 fontFamily 对象,使 font-sans 类在 HTML 中存在,但编译后的 CSS 中缺少对应规则。
extend: { fontFamily: { sans: ['"Inter"', 'ui-sans-serif', 'sans-serif'] } }extend: { fontFamily: { heading: ['"Clash Display"', 'serif'] } } → 对应类名为 font-headingfontFamily: { heading: ['"Clash Display"', 'serif'] } → 会清空所有默认族@font-face 必须放置在项目主 CSS 入口文件(如 src/styles.css)中,且应位于 @tailwind base 之前。否则 Tailwind 的基础重置会干扰字体继承,浏览器也无法正确读取字体注册信息。
@font-face → @tailwind base → @tailwind components → @tailwind utilitiessrc/styles.css,字体在 public/fonts/roboto.woff2,则路径应为 url("../public/fonts/roboto.woff2")woff2,检查是否存在 404 请求。404 的地址即为需要修正的路径。字体名是字符串字面量匹配,不区分大小写或模糊识别。例如,@font-face 中声明 font-family: "Zilla Slab",则 tailwind.config.js 中必须写 '"Zilla Slab"'(单引号包裹双引号),大小写、空格、引号类型均需完全一致。
@font-face 写 "roboto-mono",配置写 robotoMono → 不匹配'roboto-mono')→ PostCSS 解析失败,该条目被跳过'"Source Sans Pro"'、'"IBM Plex Sans"'缺少 font-display: swap 会导致 FOIT(Flash of Invisible Text),用户会先看到空白,随后文字突然闪现。缺少 format("woff2") 则可能使某些浏览器忽略该字体源,尤其在使用本地 TTF 或 OTF 文件时问题更明显。
@font-face { font-family: "robotoMono"; src: url("../fonts/robotoMono.woff2") format("woff2"); font-display: swap; }font-display: swap 必须写在 @font-face 块内,不能放在外部规则中。综上所述,最容易被忽略的环节是“两端命名一致性”——@font-face 中的 font-family 值与 tailwind.config.js 中 extend.fontFamily 的键名必须逐字符相同。这是硬性的字符串比对,而非约定。即使多一个空格,字体也会始终回退到 fallback 字体,无法正常生效。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述