ホームページ >ウェブフロントエンド >CSSチュートリアル >CSSモジュールの方法論の理解
CSSモジュール:コンポーネントCSSの強力なツール
この記事では、CSSモジュールを紹介します。これは、CSSグローバルネームスペースの競合を解決し、コンポーネントの命名を簡素化する効果的な方法です。通常、Webpackまたはbrowserifyのプラグインとして使用される特定の構成と構造プロセスが必要であり、独立して実行されません。
コアの利点:
作業原則:
CSSモジュールは、ReactコンポーネントなどのJavaScriptモジュールにCSSファイルをインポートすることにより実装されます。 CSSファイルで定義されているクラス名をマップして、動的に生成された一意にスコープされたクラス名にマップするオブジェクトを作成します。これらのクラス名は、JavaScriptの文字列として使用されます。たとえば、
単純なCSSファイル:JavaScriptコンポーネントでの使用:
<code class="language-css">.base { color: deeppink; max-width: 42em; margin: 0 auto; }</code>
コンピレーション後にWebpackが生成する場合があります:
<code class="language-javascript">import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;</code>
<code class="language-html"><div class="_20WEds96_Ee1ra54-24ePy">CSS Modules真有趣!</div></code>クラス名生成は構成可能ですが、重要なのは、それらが動的に生成され、一意であり、正しいスタイルにマッピングされることです。
<code class="language-css">._20WEds96_Ee1ra54-24ePy { color: deeppink; max-width: 42em; margin: 0 auto; }</code>よくある質問:
:global()
composes
<code class="language-css">:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }</code>ビルドツールに依存しています。
WebpackやBrowserifyなどのビルディングツールが必要です。
webpack構成:
:
に追加します
webpack.config.js
別のCSSファイルを生成するには、
<code class="language-javascript">{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }</code>を使用できます。
MiniCssExtractPlugin
<code class="language-javascript">const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { // ... other configurations module: { rules: [ { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { modules: true } } ] } ] }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' }) ] };</code>
:
にnpmスクリプトを追加します
package.json
<code class="language-json">{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }</code>
CSSモジュールは、特に大規模なプロジェクトに対して、持続可能でモジュール式、適切にスコープ、再利用可能なCSSライティング方法を提供します。
faq:
.module.css
拡張子を使用します。 :global()
を使用します。 composes
キーワードを使用します。 以上がCSSモジュールの方法論の理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。