Artikel ini membawa anda pengetahuan yang berkaitan tentang perbezaan antara modul css dan css skop digunakan untuk mengawal skop tempatan css dan menghalang pertindihan nama kelas. Nah, saya harap ia membantu semua orang.
modul css dan css berskop kedua-duanya direka bentuk untuk mengawal skop tempatan css dan mengelakkan masalah seperti pertindihan nama kelas. Jadi apa beza antara keduanya?
1.1. Penjelasan
menjana semula nama kelas untuk semua nama kelas, dengan berkesan mengelakkan masalah berat css dan pertindihan nama kelas. modul css secara langsung menggantikan nama kelas, menghapuskan kemungkinan pengguna menetapkan nama kelas untuk mempengaruhi gaya komponen, jadi tidak perlu memerah otak anda untuk menamakan.
1.2 Prinsip Pelaksanaan
Dengan menambahkan akhiran rentetan cincang pada nama gaya, gaya yang disusun dalam konteks skop tertentu boleh menjadi unik secara global.
1.3 Penggunaan
//webpack.base.conf.jsmodule: { rules: [ // ... 其它规则省略 { test: /\.css$/, use: [ 'vue-style-loader', { loader: 'css-loader', options: { // 开启 CSS Modules modules: true, // 自定义生成的类名 localIdentName: '[local]_[hash:base64:8]' } } ] } ] }
<style module>.red { color: red;}.bold { font-weight: bold;}</style>
<template> <p :class="$style.red"> This should be red </p></template><template> <p> <p :class="{ [$style.red]: isRed }"> Am I red? </p> <p :class="[$style.red, $style.bold]"> Red and bold </p> </p></template>
<script>export default { created () { console.log(this.$style.red) // -> "red_1VyoJ-uZ" // 一个基于文件名和类名生成的标识符 }}</script>
Hasil selepas penyusunan:
<template> <p :class="$style.gray"> Im gray </p></template><style module>.gray { color: gray;}</style>
//编译结果<p class="gray_3FI3s6uz">Im gray</p>.gray_3FI3s6uz { color: gray;}
Apabila memproses bingkai utama animasi animasi, nama animasi mesti ditulis terlebih dahulu. Contohnya, jika animasi: deni .5s, ia akan menyusun secara normal; jika animasi: .5s deni, ia akan menyusun secara tidak normal Ingat untuk mengkonfigurasi css-loader, jika tidak, ia tidak akan berkuat kuasa.
2.2 Cara menggunakan Tambahkan atribut
skop
pada gaya < Hasil terkumpul:
2.4 Kelemahan
<style scoped>h1 { color: #f00;}</style>Jika pengguna mentakrifkan nama kelas yang sama di tempat lain, ia mungkin masih menjejaskan komponen. </p> <p></p>Menurut ciri keutamaan gaya CSS, pemprosesan berskop akan meningkatkan berat setiap gaya Apabila merujuk komponen berskop <pre class="brush:php;toolbar:false">h1[data-v-4c3b6c1c] { color: #f00;}
skop akan memperlahankan pemaparan pemilih teg berkali-kali Apabila menggunakan pemilih teg, skop akan mengurangkan prestasi secara serius, tetapi menggunakan kelas atau id tidak akan
Atas ialah kandungan terperinci Jawapan terperinci kepada perbezaan antara css berskop dan modul css dalam skop css. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!