Modul CSS: alat yang berkuasa untuk CSS yang dikomponen
Artikel ini akan memperkenalkan modul CSS, cara yang berkesan untuk menyelesaikan konflik ruang nama global CSS dan memudahkan penamaan komponen. Ia memerlukan proses konfigurasi dan pembinaan tertentu, biasanya digunakan sebagai plug-in untuk webpack atau imbas, dan tidak berjalan secara bebas.
Kelebihan teras:
Skop tempatan:
modul CSS dilaksanakan dengan mengimport fail CSS dalam modul JavaScript seperti komponen React. Ia mewujudkan objek yang memetakan nama kelas yang ditakrifkan dalam fail CSS untuk nama kelas yang dihasilkan secara dinamik dan unik. Nama kelas ini digunakan sebagai rentetan dalam JavaScript.
Sebagai contoh, fail CSS mudah:
Penggunaan dalam komponen JavaScript:
.base { color: deeppink; max-width: 42em; margin: 0 auto; }
Webpack boleh menjana selepas penyusunan:
import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;
Generasi nama kelas boleh dikonfigurasikan, tetapi kunci ialah mereka dihasilkan secara dinamik, unik, dan peta kepada gaya yang betul.
<div class="_20WEds96_Ee1ra54-24ePy">CSS Modules真有趣!</div>
._20WEds96_Ee1ra54-24ePy { color: deeppink; max-width: 42em; margin: 0 auto; }
Soalan yang sering ditanya:
Nama Kelas
Nama Kelas::global()
composes
:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }
Konfigurasi Webpack:
tambah ke
:
Untuk menghasilkan fail CSS yang berasingan, anda boleh menggunakan: webpack.config.js
{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }
Konfigurasi BROWSERIFY (Contoh): 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' }) ] };
Ringkasan:
package.json
{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }
FAQ:
.module.css
. :global()
. composes
. Atas ialah kandungan terperinci Memahami Metodologi Modul CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!