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

原生CSS Mixins的@apply指令在Styled Components中无法生效?

解决Styled Components中@apply指令无效的问题

首先明确:@apply是已废弃的CSS提案,无任何主流浏览器实现,所以Styled Components也不会支持该语法,这就是你代码里@apply完全无效的核心原因。你全局CSS里的--blue-mixin: { color: blue; }写法,属于该废弃提案的自定义样式片段语法,当前环境下根本不生效。

给你两个可行的替代方案:

方案一:使用Styled Components内联mixin

在JS中定义可复用的样式片段,直接在styled组件中引用:

// 定义可复用样式片段
const blueMixin = `
  color: blue;
`;

// 在组件中调用
const Some = styled.div`
  color: var(--red-var);
  ${blueMixin}
`;

方案二:通过CSS类名复用全局样式

修改全局CSS为标准类样式:

.blue-text {
  color: blue;
}
--red-var: red;

然后在组件中通过类名应用样式:

const Some = styled.div`
  color: var(--red-var);
`;

// 使用组件时添加类名
<Some className="blue-text" />

也可以直接在Styled Components中继承类样式:

const Some = styled.div`
  color: var(--red-var);
  @extend .blue-text;
`;

(注:使用@extend需要确保全局类样式已提前加载)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:25:41