CSSモジュール:コンポーネントCSSの強力なツール
この記事では、CSSモジュールを紹介します。これは、CSSグローバルネームスペースの競合を解決し、コンポーネントの命名を簡素化する効果的な方法です。通常、Webpackまたはbrowserifyのプラグインとして使用される特定の構成と構造プロセスが必要であり、独立して実行されません。
コアの利点:
- ローカルスコープ:CSSモジュールは、グローバルな命名競合を回避するために、デフォルトでCSSスコープをコンポーネントに制限します。
- ダイナミックネーミング:構築プロセスは、一意の動的クラス名を生成し、対応するスタイルにマッピングし、命令の競合を減らし、モジュール性を向上させます。
- スケーラビリティ:グローバルクラスの定義と他のモジュールからスタイルを拡張して、コードの再利用性と保守性を向上させることをサポートします。
作業原則:
CSSモジュールは、ReactコンポーネントなどのJavaScriptモジュールにCSSファイルをインポートすることにより実装されます。 CSSファイルで定義されているクラス名をマップして、動的に生成された一意にスコープされたクラス名にマップするオブジェクトを作成します。これらのクラス名は、JavaScriptの文字列として使用されます。たとえば、
単純なCSSファイル:JavaScriptコンポーネントでの使用:
.base { color: deeppink; max-width: 42em; margin: 0 auto; }
コンピレーション後にWebpackが生成する場合があります:
import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;
<div class="_20WEds96_Ee1ra54-24ePy">CSS Modules真有趣!</div>クラス名生成は構成可能ですが、重要なのは、それらが動的に生成され、一意であり、正しいスタイルにマッピングされることです。
._20WEds96_Ee1ra54-24ePy { color: deeppink; max-width: 42em; margin: 0 auto; }よくある質問:
- クラス名はugly:
- クラス名は美学のためではなく、スタイルの適用のためであるため、これは問題ではありません。 デバッグの難易度:
- デバッグにソースマップを使用できます。スタイルの範囲は明確であるため、デバッグは比較的簡単です。 スタイルの再利用性が低い:
- CSSモジュールは、グローバルなスタイルの対立を回避するように設計されていますが、グローバルクラスまたはキーワードを定義して再利用性を向上させることでスタイルを拡張できます。
:global()
composes
:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }ビルドツールに依存しています。
- これは、ビルドステップが必要なSASSまたはPostCSSに似ています。
- 初心者:
WebpackやBrowserifyなどのビルディングツールが必要です。
webpack構成:
:
に追加します
webpack.config.js
別のCSSファイルを生成するには、
{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }を使用できます。
MiniCssExtractPlugin
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' }) ] };
:
にnpmスクリプトを追加します
package.json
{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }
CSSモジュールは、特に大規模なプロジェクトに対して、持続可能でモジュール式、適切にスコープ、再利用可能なCSSライティング方法を提供します。
faq:
- 利点:クラス名の競合を避け、コンポーネントの再利用性と保守性を改善し、スタイルの組み合わせをサポートします。
-
実装:webpackまたはbrowserifyを構成するには、
.module.css
拡張子を使用します。 -
グローバルスタイル:使用
:global()
を使用します。 -
スタイルの組み合わせ:
composes
キーワードを使用します。 - 反応互換性と互換性があります:。
- 従来のCSSとの違い:さまざまなスコープは異なり、従来のCSS世界的に、CSSモジュールはローカルです。
- sass/lessと互換性があります:、追加の構成が必要です。
- debug:ソースマップを使用します。
- 制限:ビルドツールが必要です。メディアクエリなどをサポートするために追加の構成が必要になる場合があります。
- サーバー側のレンダリング:追加の構成が必要です。
以上がCSSモジュールの方法論の理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

React Ecosystemは、すべてがドラッグアンドドロップの相互作用に焦点を合わせている多くのライブラリを提供します。 React-Dnd、React-Beautiful-Dnd、

バックグラウンドクリップをすべて頻繁に使用すると言うことができます。私は、日々のCSS作業ではほとんど使用されていない&#039; dを賭けています。しかし、私はステファン・ジュディスの投稿でそれを思い出しました、

RequestAnimationFrameでアニメーション化するのは簡単なはずですが、Reactのドキュメントを徹底的に読んでいない場合は、おそらくいくつかのことに遭遇するでしょう

おそらく、それをユーザーに提供する最も簡単な方法は、要素上のIDをターゲットにするリンクです。だから...

聞いてください、私はGraphQLの専門家ではありませんが、私はそれで働くことを楽しんでいます。フロントエンド開発者としてデータを公開する方法はかなりクールです。メニューのようなものです

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

私は最近、Codepenの興味深い変化に気づきました。ホームページにペンをホバリングすると、丸い角が背面に拡大する長方形があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
