現在、スタイリングにReactでCSSモジュールを使用しています。だから私のコンポーネントのそれぞれは、そのようにそのコンポーネント固有のCSSファイルにインポートしています:
import React from 'react';
import styles from './App.css';
const example = () => (
<div className={styles.content}>
Hello World!
</div>
);
export default example;
これは個々のコンポーネントをスタイリングするときにうまく機能しますが、コンポーネント固有ではないグローバルなスタイリング(html、body、headerタグ、divなど)を適用するにはどうすればよいですか?
ES6インポート構文を使用しているため、同じ構文を使用してスタイルシートをインポートできます
import './App.css'
また、クラスを:global
でラップしてグローバルスコープに切り替えることができます(これは、CSSモジュールがそれを調整しないことを意味します。たとえば、ランダムIDを隣に追加します)
:global(.myclass) {
background-color: red;
}
これは、以下を追加するだけで実行できます。
require('./App.css');
(この質問に正しく答えてくれた@elmeisterに感謝します。)
グローバルにスタイルをインポートするために見つけた唯一の方法は、特定のルートに対してのみです:
<style dangerouslySetInnerHTML={{__html: `
body { max-width: 100% }
`}} />
render
メソッドの戻り値内。
そうでない場合、style
タグが<head>
に追加され、スタイルが次のすべてのルートに適用されます。
から https://medium.learnreact.com/the-style-tag-and-react-24d6dd3ca974
コードをより整理するために、スタイルをファイルから文字列としてインポートすることもできます。