Kelas pseudo CSS3 :not() membenarkan penafian dalam pemilih, tidak termasuk elemen yang sepadan dengan corak yang ditentukan. Walau bagaimanapun, terdapat had pada fungsinya.
Pelaksanaan Semasa
Seperti yang diterangkan dalam dokumentasi CSS3 dan CSS Selectors Tahap 4, :not() pada masa ini hanya sepadan dengan keturunan langsung . Dalam contoh yang disediakan:
div :not(p) { color: red; }
Pemilih ini menyasarkan anak langsung
. Unsur yang merupakan keturunan yang lebih jauh, walaupun terkandung dalam
bersarang dalam
Warisan dan Penggayaan
Pewarisan sifat penggayaan boleh merumitkan lagi tingkah laku :not(). Dalam contoh daripada soalan,
elemen dalam
mewarisi warna teks merah daripada induknya, walaupunitu sendiri sepadan dengan pemilih :not(). Ini kerana penolakan digunakan pada elemen induk,
, yang memenuhi kriteria yang ditentukan.Peningkatan Masa Depan
Pemilih CSS Tahap 4 mencadangkan pelanjutan : not() untuk memasukkan pemilih dan penggabung kompleks penuh. Ini akan membolehkan penapisan yang lebih berbutir, membolehkan pemilih seperti:
p:not(div p) { color: red; }Salin selepas log masukPengesyoran
Disebabkan pengehadan semasa :not() dan kemungkinan kekeliruan dengan warisan , secara amnya dinasihatkan untuk mengelak daripada menggunakannya untuk menapis keturunan jauh. Pertimbangkan pendekatan alternatif seperti menggunakan pemilih langsung atau menggunakan penggayaan khusus pada elemen yang anda ingin kecualikan. Setelah sokongan untuk pemilih kompleks dalam :not() dilaksanakan, fungsi ini mungkin menjadi lebih berguna.
Atas ialah kandungan terperinci Adakah CSS `:not()` Menyasarkan Kanak-Kanak Terdekat atau Keturunan Jauh sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!