Rumah >hujung hadapan web >tutorial css >Memahami Metodologi Modul CSS
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:
<code class="language-css">.base { color: deeppink; max-width: 42em; margin: 0 auto; }</code>
Webpack boleh menjana selepas penyusunan:
<code class="language-javascript">import styles from './styles.css'; element.innerHTML = `<div class="${styles.base}">CSS Modules真有趣!</div>`;</code>
Generasi nama kelas boleh dikonfigurasikan, tetapi kunci ialah mereka dihasilkan secara dinamik, unik, dan peta kepada gaya yang betul.
<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>
Soalan yang sering ditanya:
Nama Kelas
Nama Kelas::global()
composes
<code class="language-css">:global(.clearfix::after) { content: ''; clear: both; display: table; } .base { composes: appearance from '../AnotherModule/styles.css'; }</code>
Konfigurasi Webpack:
tambah ke
:
Untuk menghasilkan fail CSS yang berasingan, anda boleh menggunakan: webpack.config.js
<code class="language-javascript">{ test: /\.css$/, use: [ 'style-loader', { loader: 'css-loader', options: { modules: true } } ] }</code>
Konfigurasi BROWSERIFY (Contoh): 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>:
Ringkasan:
package.json
<code class="language-json">{ "scripts": { "build": "browserify -p [ css-modulesify -o dist/main.css ] -o dist/index.js src/index.js" } }</code>
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!