cari

CSS Selectors: Specificity

CSS Selectors: Specificity

Petikan berikut adalah dari buku "CSS Master" yang ditulis oleh Tiffany B. Brown. Buku ini boleh didapati di kedai-kedai di seluruh dunia, dan anda juga boleh membeli versi e-book di sini.

kekhususan CSS menentukan pengisytiharan gaya yang akhirnya digunakan untuk elemen tersebut. Pemilih Wildcard (*) mempunyai kekhususan terendah dan pemilih ID mempunyai kekhususan tertinggi. Pemilih keturunan (mis. P img) dan sub pemilih (mis.

Pada pandangan pertama, mengira nilai kekhususan yang tepat nampaknya rumit. Seperti yang dinyatakan dalam tahap pemilih 3, anda memerlukan:

Statistik Bilangan pemilih ID dalam pemilih (= a)
  • Statistik Bilangan pemilih kelas, pemilih atribut dan kelas pseudo dalam pemilih (= b)
  • Statistik Bilangan pemilih jenis dan elemen pseudo dalam pemilih (= c)
  • Abaikan pemilih Wildcard
Nilai A, B dan C ini kemudian digabungkan untuk membentuk nilai khusus akhir. Sebagai contoh, pemilih ID #Foo mempunyai kekhususan 1,0,0. Kekhususan pemilih atribut (mis. [Type = email]) dan pemilih kelas (mis. .Chart) adalah 0,1,0. Menambah kelas pseudo (mis .: Anak pertama, mis.. Walau bagaimanapun, dengan menggunakan pemilih jenis atau elemen mudah (mis. H1 atau P) hanya akan menjadikan kekhususan 0,0,1.

Nota: Kirakan kekhususan

Kalkulator Spesifikasi Keegan Street dan CSS Joshua Peek Jelaskan bantuan belajar dan mengira kekhususan pemilih.

Sudah tentu, pemilih kompleks dan pemilih gabungan akan menghasilkan nilai kekhususan yang lebih tinggi. Mari kita lihat contoh. Pertimbangkan CSS berikut:

Kedua -dua set peraturan ini sama, tetapi tidak sama. Pemilih pertama, UL#Story-List & GT; Nilai kekhususannya ialah 1,1,1. Pemilih Kedua #Story-List & GT; Nilai kekhususannya ialah 1,1,0. Walaupun kami #Story-List & GT; .
<code>ul#story-list > .book-review {
    color: #0c0;
}

#story-list > .book-review {
    color: #f60;
}</code>

pseudoclasses seperti: pautan atau: tidak sah mempunyai tahap kekhususan yang sama sebagai pemilih kelas. Nilai kekhususan a: pautan dan a.external adalah 0,1,1. Begitu juga, elemen pseudo seperti :: sebelum dan :: selepas adalah seperti jenis atau pemilih elemen khusus. Jika kekhususan kedua -dua pemilih adalah sama, lata itu berkuatkuasa. Berikut adalah contoh:

Jika kita memohon CSS ini, semua pautan akan menjadi slate biru kecuali untuk pautan yang memohon kelas. Lternal. Pautan ini akan ditukar kepada Orange.
<code>a:link {
    color: #369;
}
a.external {
    color: #f60;
}</code>

Menjaga kekhususan yang rendah membantu mencegah penyebaran pemilih, iaitu kecenderungan pemilih dan panjang untuk meningkat dari masa ke masa. Ini biasanya berlaku apabila anda menambah pemaju baru ke pasukan anda atau borang kandungan baru ke laman web anda. Penyebaran pemilih juga boleh menyebabkan kesukaran penyelenggaraan jangka panjang. Anda akhirnya menggunakan pemilih yang lebih spesifik untuk menimpa peraturan lain atau anda perlu refactor kod. Pemilih yang lebih lama juga meningkatkan berat fail CSS.

Kami membincangkan strategi untuk menjaga kekhususan rendah dalam Bab 2.

Kesimpulan

Selepas membaca bab ini, anda harus mempunyai pemahaman yang baik tentang pemilih CSS. Khususnya, anda harus tahu bagaimana:

  • Gunakan CSS untuk elemen tertentu, elemen pseudo, dan kelas pseudo menggunakan pemilih
  • memahami perbezaan antara elemen pseudo dan kelas pseudo
  • Gunakan kelas pseudo yang lebih baru yang diperkenalkan dalam tahap pemilih 3 dan 4 spesifikasi
  • kekhususan pengiraan

Dalam bab seterusnya, kami akan memperkenalkan beberapa Peraturan Emas untuk menulis CSS yang boleh dipelihara, boleh diperluas.

soalan yang sering ditanya mengenai pemilih dan kekhususan CSS (FAQ)

Apakah kepentingan kekhususan CSS dalam pembangunan web?

kekhususan CSS adalah konsep utama dalam pembangunan web kerana ia menentukan yang CSS memerintah penyemak imbas terpakai. Apabila banyak peraturan CSS boleh digunakan untuk elemen, penyemak imbas mengikuti peraturan khusus untuk menentukan peraturan mana yang hendak digunakan. Memahami kekhususan CSS boleh membantu pemaju menulis kod CSS yang lebih cekap dan cekap, mengelakkan mengatasi yang tidak perlu, dan menyelesaikan masalah CSS dengan lebih berkesan.

Bagaimana untuk mengira kekhususan CSS?

Pengiraan kekhususan CSS adalah berdasarkan pelbagai jenis pemilih yang digunakan dalam peraturan CSS. Setiap jenis pemilih mempunyai nilai kekhususan yang berbeza. Gaya inline mempunyai kekhususan tertinggi, diikuti oleh pemilih ID, pemilih kelas, pemilih atribut, dan kelas pseudo, dan akhirnya menaip pemilih dan elemen pseudo. Kekhususan peraturan CSS adalah jumlah nilai pemilihnya.

Bolehkah anda menerangkan konsep kekhususan CSS dengan contoh?

mari kita pertimbangkan contoh. Katakan kami mempunyai peraturan CSS dengan pemilih kelas .Class1 dan peraturan lain dengan pemilih ID #ID1. Jika kedua -dua peraturan ini boleh digunakan untuk elemen yang sama, peraturan dengan pemilih ID digunakan kerana pemilih ID mempunyai kekhususan yang lebih tinggi daripada pemilih kelas.

Apa yang berlaku apabila dua peraturan CSS mempunyai kekhususan yang sama?

Apabila dua peraturan CSS mempunyai kekhususan yang sama, peraturan terakhir yang muncul dalam kod CSS akan digunakan. Ini kerana CSS mengikuti strategi "kemenangan terakhir" ketika menangani peraturan dengan kekhususan yang sama.

Bagaimana untuk menutup kekhususan CSS?

anda boleh mengatasi kekhususan CSS dengan meningkatkan kekhususan peraturan CSS. Ini boleh dilakukan dengan menambah pemilih yang lebih spesifik kepada peraturan. Satu lagi cara untuk mengatasi kekhususan CSS adalah menggunakan peraturan penting. Walau bagaimanapun, penting harus dielakkan apabila mungkin, kerana ia akan menjadikan kod CSS anda lebih sukar untuk dikendalikan dan debug.

Apakah peranan warisan dalam kekhususan CSS?

warisan adalah ciri dalam CSS di mana jenis atribut tertentu secara automatik diluluskan dari elemen induk kepada elemen anaknya. Walau bagaimanapun, gaya yang diwarisi mempunyai kekhususan yang paling rendah dan boleh dengan mudah ditimpa oleh gaya langsung yang digunakan untuk elemen tersebut.

Bagaimana pemilih wildcard mempengaruhi kekhususan CSS?

Pemilih Wildcard (*) tidak mempunyai kesan ke atas kekhususan CSS. Ini bermakna nilai kekhususannya ialah 0,0,0,0. Oleh itu, mana -mana pemilih lain yang digunakan dalam peraturan yang sama akan mengatasi pemilih Wildcard.

Apakah kekhususan elemen pseudo dalam CSS?

kekhususan elemen pseudo dalam CSS adalah 0,0,0,1. Ini bermakna mereka mempunyai kekhususan yang sama seperti pemilih jenis (seperti div, p, dan lain -lain) dan ditindih oleh pemilih kelas, pemilih ID, dan gaya inline.

: tidak () Bagaimanakah kelas pseudo mempengaruhi kekhususan CSS?

: tidak () kelas pseudo dalam CSS tidak meningkatkan kekhususan pemilih. Sebaliknya, pengiraan khusus adalah berdasarkan parameter yang diluluskan kepada fungsi: tidak (). Sebagai contoh, dalam: tidak (.class1), kekhususan adalah sama seperti .class1.

Bolehkah saya menggunakan pelbagai pemilih dalam peraturan CSS tunggal? Bagaimanakah ia mempengaruhi kekhususan?

Ya, anda boleh menggunakan pelbagai pemilih dalam peraturan CSS tunggal. Kekhususan peraturan tersebut adalah jumlah semua spesifikasi pemilihnya. Sebagai contoh, dalam #id1.class1, kekhususan adalah jumlah kekhususan #ID1 dan .Class1.

Atas ialah kandungan terperinci Pemilih CSS: Kekhususan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pembaca Skrin Demystifying: Borang & Amalan Terbaik DiaksesPembaca Skrin Demystifying: Borang & Amalan Terbaik DiaksesMar 08, 2025 am 09:45 AM

Ini adalah jawatan ke -3 dalam siri kecil yang kami lakukan dalam kebolehcapaian bentuk. Jika anda terlepas jawatan kedua, lihat "Menguruskan Fokus Pengguna dengan: Fokus-Visible". Dalam

Buat borang hubungan JavaScript dengan rangka kerja pintarBuat borang hubungan JavaScript dengan rangka kerja pintarMar 07, 2025 am 11:33 AM

Tutorial ini menunjukkan mewujudkan bentuk JavaScript yang berpandangan profesional menggunakan rangka kerja pintar (nota: tidak lagi tersedia). Walaupun kerangka itu sendiri tidak tersedia, prinsip dan teknik tetap relevan untuk pembina bentuk lain.

Menambah bayang -bayang kotak ke blok dan elemen WordPressMenambah bayang -bayang kotak ke blok dan elemen WordPressMar 09, 2025 pm 12:53 PM

CSS box-shadow dan garis besar sifat mendapat tema.json Sokongan dalam WordPress 6.1. Let ' s melihat beberapa contoh bagaimana ia berfungsi dalam tema sebenar, dan pilihan apa yang kita perlu gunakan gaya ini ke blok dan elemen WordPress.

Bekerja dengan Caching GraphqlBekerja dengan Caching GraphqlMar 19, 2025 am 09:36 AM

Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Menjadikan Peralihan Svelte Khas pertama andaMenjadikan Peralihan Svelte Khas pertama andaMar 15, 2025 am 11:08 AM

API Peralihan Svelte menyediakan cara untuk menghidupkan komponen apabila mereka memasuki atau meninggalkan dokumen, termasuk peralihan svelte adat.

CSS Scrollbars Custom Custom: PameranCSS Scrollbars Custom Custom: PameranMar 10, 2025 am 11:37 AM

Dalam artikel ini kita akan menyelam ke dunia scrollbars. Saya tahu, ia tidak terdengar terlalu glamor, tetapi percayalah, halaman yang direka dengan baik

Tunjukkan, jangan beritahuTunjukkan, jangan beritahuMar 16, 2025 am 11:49 AM

Berapa banyak masa yang anda habiskan untuk merancang persembahan kandungan untuk laman web anda? Semasa anda menulis catatan blog baru atau membuat halaman baru, adakah anda memikirkan

Apa yang ada perintah npm?Apa yang ada perintah npm?Mar 15, 2025 am 11:36 AM

Perintah NPM menjalankan pelbagai tugas untuk anda, sama ada sebagai satu-satunya atau proses berjalan terus untuk perkara seperti memulakan pelayan atau menyusun kod.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft