Maison >interface Web >tutoriel CSS >Comprendre la méthodologie des modules CSS
Modules CSS: un outil puissant pour CSS composé
Cet article introduira les modules CSS, un moyen efficace de résoudre les conflits d'espace de noms global CSS et de simplifier la dénomination des composants. Il nécessite un certain processus de configuration et de construction, généralement utilisé comme plug-in pour WebPack ou de navigation, et ne fonctionne pas indépendamment.
Avantages de base:
Principe de travail:
Les modulesCSS sont implémentés en important des fichiers CSS dans des modules JavaScript tels que les composants React. Il crée un objet qui mappe les noms de classe définis dans le fichier CSS à des noms de classe de classement générés dynamiquement. Ces noms de classe sont utilisés comme chaînes en JavaScript.
par exemple, un fichier CSS simple:
<code class="language-css">.base { color: deeppink; max-width: 42em; margin: 0 auto; }</code>
Utilisation dans les composants JavaScript:
<code class="language-javascript">import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;</code>
webpack peut générer après compilation:
<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>
La génération de noms de classe est configurable, mais la clé est qu'elles sont générées dynamiquement, uniques et cartographiques au bon style.
Questions fréquemment posées:
:global()
Mots-clés pour améliorer la réutilisabilité. composes
<code class="language-css">:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }</code>
débutant:
Des outils de construction tels que WebPack ou Browserify sont nécessaires.
Configuration WebPack:
Ajouter à: webpack.config.js
<code class="language-javascript">{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }</code>Pour générer un fichier CSS séparé, vous pouvez utiliser
: 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>
Browserify Configuration (Exemple):
Ajouter le script NPM dans: package.json
<code class="language-json">{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }</code>
Résumé: Les modules
CSS fournissent une méthode de rédaction CSS durable, modulaire, bien spécialisée et réutilisable, en particulier pour les grands projets.
FAQ:
.module.css
. :global()
. composes
. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!