baseFontSize未改变所有元素大小?Gatsby+Typography.js问题求助
解决Typography.js baseFontSize不生效的问题
嘿,我来帮你排查下这个问题~ 我刚开始用Gatsby和Typography.js的时候也踩过这个坑,baseFontSize不生效通常是几个关键环节没做好,咱们一步步来梳理:
1. 忘记注入Typography样式到项目中
你当前的typography.js只创建了Typography实例,但没有把生成的样式注入到全局环境里,浏览器根本没收到这些样式规则。修改你的代码,加上injectStyles()调用:
import Typography from "typography"; const typography = new Typography({ baseFontSize: "52px" }); // 新增这一行,把样式注入到页面全局 typography.injectStyles(); export default typography;
2. 没有在项目中引入typography.js文件
光有配置文件还不够,你得让Gatsby加载这个文件才能生效。分两种情况:
- 没使用gatsby-plugin-typography插件:在你的根布局组件(比如
src/components/layout.js)或者gatsby-browser.js的顶部导入配置文件:// 示例:在layout.js中导入 import "../utils/typography.js"; // 换成你的typography.js实际路径 - 使用了gatsby-plugin-typography插件:确保在
gatsby-config.js里正确配置了插件的路径:module.exports = { plugins: [ { resolve: `gatsby-plugin-typography`, options: { pathToConfigModule: `src/utils/typography`, // 对应你的配置文件路径 }, }, ], };
3. 检查是否有其他CSS样式覆盖了Typography的规则
有时候项目里的全局CSS、组件内联样式或者第三方样式优先级更高,会把Typography设置的字号覆盖掉。你可以打开浏览器开发者工具(按F12),选中某个元素查看Computed标签下的font-size属性,看看是不是有其他样式规则把baseFontSize的效果覆盖了。
4. 确认Typography.js版本兼容性
虽然你写的实例创建方式是标准写法,但如果你的Typography.js版本太旧或者和Gatsby版本不兼容,也可能出现问题。可以检查下package.json里的typography和gatsby-plugin-typography(如果用了的话)版本,尝试更新到最新稳定版再测试。
先从前面两个步骤入手,这是最常见的导致baseFontSize不生效的原因,应该能解决你的问题~
内容的提问来源于stack exchange,提问作者ferdi_
相关产品推荐
相关产品推荐

