使用CSS Modules,如何在不复制样式声明的情况下将全局实用程序类应用于多个元素?
例如,这是一个没有 CSS 模块的 React 组件。相关行是div
有两个类:widget
和clearfix
...
/* components/widget.jsx */
class Widget extends Component {
render() {
return (
<div className="widget clearfix">
<div className="widget-alpha">Alpha</div>
<div className="widget-beta">Beta</div>
</div>
);
}
}
.clearfix
是一个全局实用程序类,我想将其应用于整个应用程序的许多元素:
/* util/clearfix.scss */
.clearfix {
&:before, &:after { content: " "; display: table; }
&:after { clear: both; }
}
我见过各种导入.clearfix
CSS 模块的方法,但在每种情况下,样式声明都会为应用类的每次出现重新定义。这是一个例子:
/* widget.scss */
.widget {
// other styles
composes: clearfix from '../util/clearfix.scss';
}