Tidak ada kelas semu seperti itu. Tidak perlu, saat Anda bisa menggunakannya :not(:hover)
. Inti dari :not()
pseudo-class adalah untuk memungkinkan penulis menulis negasi tanpa harus menentukan negasi terpisah dari setiap pseudo-class dinamis yang ada (dan yang akan datang) di mana sebuah elemen hanya bisa cocok atau tidak cocok dengan pseudo-class.
Misalnya, hanya beberapa elemen yang dapat :enabled
atau :disabled
- sebagian besar elemen bukan keduanya karena semantik tidak berlaku - tetapi elemen hanya dapat ditentukan oleh perangkat penunjuk ( :hover
), atau tidak ( :not(:hover)
). Memberikan negasi yang sudah bisa langsung dicapai dengan menggunakan :not()
akan sangat merusak kegunaannya (meskipun masih bisa digunakan untuk meniadakan pemilih sederhana lainnya - atau seluruh pemilih kompleks di masa mendatang).
Argumen bahwa kelas semu seperti itu akan secara komputasi lebih murah cukup lemah. Implementasi yang paling naif dari kelas-semu seperti itu adalah pemeriksaan literal :not(:hover)
, yang tidak akan lebih baik. Implementasi yang lebih kompleks atau dioptimalkan dan Anda meminta vendor untuk mengimplementasikan pseudo-class yang secepat atau bahkan lebih cepat dari :not(:hover)
, sesuatu yang sudah cukup tidak umum dari kasus penggunaan mempertimbangkan opsi lain yang Anda miliki seperti cascading dan :not(:hover)
(untuk kapan pun cascading bukan merupakan opsi) yang dapat Anda akses dengan mudah. Ini tidak membenarkan waktu dan upaya untuk menentukan, mengimplementasikan dan menguji alternatif untuk setidaknya satu metode lain yang ada yang 100% setara secara fungsional (dan yang berlaku untuk setidaknya80% dari skenario). Dan ada juga masalah penamaan kelas semu seperti itu - Anda belum mengusulkan nama untuk itu, dan saya juga tidak bisa memikirkan yang bagus. :not-hover
hanya lebih pendek dua byte dan hanya sedikit pekerjaan untuk mengetik. Jika ada, itu berpotensi lebih membingungkan daripada :not(:hover)
.
Jika Anda khawatir tentang kekhususan, catatan bahwa para :not()
pseudo-kelas itu sendiri tidak dihitung untuk spesifisitas; hanya argumennya yang paling spesifik . :not(:hover)
dan :hover
sama-sama spesifik. Jadi, kekhususan juga bukan masalah.
Jika Anda khawatir tentang dukungan browser, pseudo-class seperti itu, jika diperkenalkan, kemungkinan besar akan diperkenalkan bersamaan :not()
, atau di level Selectors yang lebih baru, karena tidak muncul di CSS2 ( :hover
yang pertama kali diperkenalkan lebih dari 17 tahun lalu, dan pertama kali diterapkan di IE4 setahun lagi sebelumnya). Memperkenalkannya di tingkat selanjutnya tidak ada gunanya karena penulis hanya akan dipaksa untuk terus menggunakan :not(:hover)
sampai browser mulai menerapkan kelas semu baru ini, dan mereka tidak memiliki alasan untuk beralih.
Perhatikan bahwa ini tidak sama dengan pertanyaan berikut, yang berbicara tentang peristiwa vs status (awalnya tentang :focus
bukan :hover
, tetapi prinsip yang sama berlaku): Apakah CSS memiliki: blur selector (pseudo-class)?
element:not(:hover)
gunakanelement
.