CSS Modulesを使用して、スタイル宣言を複製せずにグローバル ユーティリティ クラスを複数の要素に適用するにはどうすればよいですか?
たとえば、これは CSS モジュールのない React コンポーネントです。関連する行は、次のdiv
2 つのクラスを持つ です: widget
and 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; }
}
CSS モジュールにインポートするさまざまな方法を見てきまし.clearfix
たが、いずれの場合も、クラスが適用されるたびにスタイル宣言が再定義されます。一例を次に示します。
/* widget.scss */
.widget {
// other styles
composes: clearfix from '../util/clearfix.scss';
}