从 CSS 模块中访问全局 类
Access global classes from within CSS module
我正在开发一个使用 ReactJS 和 CSS 模块的项目,每个 React 组件都有相应的 SASS 文件。
在编写 CSS 时,每个 class 都会附加“三重下划线随机字符串 ”,例如.myClass__e7G3A
我的应用根据滚动位置将 class(top' 或 'down')附加到 body 标签,我希望我的组件对此做出响应。
我遇到的问题是,如果我在 CSS 模块中添加 .top
或 .down
,那么它也会将唯一标识符附加到 class 的末尾.
例如
JSX:
<div className={styles.main}>
Main content goes here.
</div>
渲染HTML:
<body class="top">
<div class="main___iZy2A">
Main content goes here.
</div>
</body>
SASS 文件:
.top .main {
margin-top: 0;
}
.down .main {
margin-top: 100px;
}
已编译CSS:
.top___Gvf3S .main___iZy2A {
margin-top: 0;
}
.down___kpd3S .main___iZy2A {
margin-top: 100px;
}
期望的 CSS 结果:(.top
和 .down
没有唯一标识符)
.top .main___iZy2A {
margin-top: 0;
}
.down .main___iZy2A {
margin-top: 100px;
}
我确定我只是缺少一个简单的标识符或可以实现此目的的东西。
希望能帮到你。谢谢。
在选择器上使用 :global:
:global(.top) .main___iZy2A {
margin-top: 0;
}
:global(.down) .main___iZy2A {
margin-top: 100px;
}
或者 :global
和 :local
的组合,如果你有多个全局选择器:
:global .top .top--left :local .main___iZy2A {
margin-top: 0;
}
:global .down .down--right :local .main___iZy2A {
margin-top: 100px;
}
我正在开发一个使用 ReactJS 和 CSS 模块的项目,每个 React 组件都有相应的 SASS 文件。
在编写 CSS 时,每个 class 都会附加“三重下划线随机字符串 ”,例如.myClass__e7G3A
我的应用根据滚动位置将 class(top' 或 'down')附加到 body 标签,我希望我的组件对此做出响应。
我遇到的问题是,如果我在 CSS 模块中添加 .top
或 .down
,那么它也会将唯一标识符附加到 class 的末尾.
例如
JSX:
<div className={styles.main}>
Main content goes here.
</div>
渲染HTML:
<body class="top">
<div class="main___iZy2A">
Main content goes here.
</div>
</body>
SASS 文件:
.top .main {
margin-top: 0;
}
.down .main {
margin-top: 100px;
}
已编译CSS:
.top___Gvf3S .main___iZy2A {
margin-top: 0;
}
.down___kpd3S .main___iZy2A {
margin-top: 100px;
}
期望的 CSS 结果:(.top
和 .down
没有唯一标识符)
.top .main___iZy2A {
margin-top: 0;
}
.down .main___iZy2A {
margin-top: 100px;
}
我确定我只是缺少一个简单的标识符或可以实现此目的的东西。
希望能帮到你。谢谢。
在选择器上使用 :global:
:global(.top) .main___iZy2A {
margin-top: 0;
}
:global(.down) .main___iZy2A {
margin-top: 100px;
}
或者 :global
和 :local
的组合,如果你有多个全局选择器:
:global .top .top--left :local .main___iZy2A {
margin-top: 0;
}
:global .down .down--right :local .main___iZy2A {
margin-top: 100px;
}