You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用styled-components覆盖全局样式的font-style与font-family

解决全局字体样式无法被组件覆盖的问题

问题根源

你在定义Text组件的样式时,错误地给CSS属性值加了双引号。这会让styled-components把这些样式解析成HTML元素的自定义属性(也就是你看到的<p font-style="italic" font-family="Arial"...>),而非有效的CSS规则,自然无法覆盖全局设置的Montserrat字体和默认样式。

正确写法

直接去掉属性值的双引号即可:

const Text = styled.p`
  font-style: italic;
  font-family: Arial;
  // 要是遇到带空格的字体名称,比如"Times New Roman",才需要加引号
  // font-family: "Times New Roman", serif;
`;

优先级补充(可选)

如果后续还出现样式不生效的情况,大概率是全局样式优先级更高,可以试试这些方法:

  • 给组件添加更具体的选择器结构
  • 必要时使用!important(尽量少用,避免样式混乱)
  • 借助styled-components的主题或嵌套特性提升样式优先级

内容的提问来源于stack exchange,提问作者Neli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:04:51