结束了以下工作:
对需要覆盖本地值的全局变量使用 !important:
/* app.css */
@media print {
@page {
margin: 1cm;
}
* {
color: #000 !important;
}
}
将组件特定的覆盖放入每个组件的 style.css 中:
/* style.css */
.my-class {
composes: rounded-corners from 'shared/ui.css';
margin: 0 0 60px 0;
background-color: white;
}
@media print {
.my-class {
page-break-inside: avoid;
font-size: 10px;
}
}
/* my-component.jsx */
import style from './style.css';
const MyComponent = () => {
return (
<div className={style.myClass}>
....
</Link>
);
};
还有第三种选择,我还没有真正尝试过。
您应该能够使用库将顶级覆盖类名与本地类名一起应用classNames
:
import app from 'app.css';
import styles from './style.ss'
const MyComponent = () => {
return (
<div className={classNames(style.local, app.global)}>
....
</Link>
);
};
(这第三个选项就在我的脑海中,我不知道它是否会起作用)