Saya tahu ada :checked
pseudo-class resmi CSS3 , tetapi apakah ada :unchecked
pseudo-class, dan apakah mereka memiliki dukungan browser yang sama?
Referensi Sitepoint tidak menyebutkan satu pun, namun spesifikasi whatwg ini (apa pun itu) yang melakukannya.
Saya tahu hasil yang sama dapat dicapai ketika kelas :checked
dan :not()
pseudo digabungkan, tetapi saya masih penasaran:
input[type="checkbox"]:not(:checked) {
/* styles */
}
Edit:
W3c merekomendasikan teknik yang sama
Kotak centang yang tidak dicentang dapat dipilih dengan menggunakan negation pseudo-class:
:not(:checked)
sumber
Saya pikir Anda mencoba untuk memperumit masalah. Solusi sederhana adalah dengan hanya mengatur gaya kotak centang Anda secara default dengan gaya yang tidak dicentang dan kemudian menambahkan gaya status yang dicentang.
Saya minta maaf karena mengungkit utas lama tetapi merasa itu bisa menggunakan jawaban yang lebih baik.
EDIT (3/3/2016):
Spesifikasi W3C menyatakan bahwa
:not(:checked)
sebagai contoh mereka untuk memilih keadaan yang tidak dicentang. Namun, ini secara eksplisit adalah status yang tidak dicentang dan hanya akan menerapkan gaya tersebut ke status yang tidak dicentang. Ini berguna untuk menambahkan gaya yang hanya diperlukan pada keadaan tidak dicentang dan akan perlu dihapus dari keadaan dicentang jika digunakan padainput[type="checkbox"]
selektor. Lihat contoh di bawah untuk klarifikasi.Tanpa menggunakan
:not(:checked)
contoh di atas,:checked
pemilih perlu menggunakan aborder: none;
untuk mencapai pengaruh yang sama.Gunakan
input[type="checkbox"]
untuk gaya dasar untuk mengurangi duplikasi.Gunakan
input[type="checkbox"]:not(:checked)
untuk gaya eksplisit yang tidak dicentang yang tidak ingin Anda terapkan ke status yang dicentang.sumber
:not(:checked)
:first-child
,:last-child
atau:nth-child
pemilih dalam kombinasi dengan:checked
.:not(:checked)
tidak akan mencakup situasi yang Anda tentukan kecuali saya salah memahami komentar Anda.Tidak ada: kelas semu yang tidak dicentang namun jika Anda menggunakan kelas semu: diperiksa dan selektor saudara Anda dapat membedakan antara kedua status. Saya yakin semua browser terbaru mendukung: kelas semu yang diperiksa, Anda dapat menemukan info lebih lanjut dari sumber ini: http://www.whatstyle.net/articles/18/pretty_form_controls_with_css
Anda akan mendapatkan dukungan browser yang lebih baik dengan jquery ... Anda dapat menggunakan fungsi klik untuk mendeteksi kapan klik terjadi dan jika dicentang atau tidak, maka Anda dapat menambahkan kelas atau menghapus kelas seperlunya ...
sumber
Cara saya menangani ini adalah mengganti className label berdasarkan suatu kondisi. Dengan cara ini Anda hanya memerlukan satu label dan Anda dapat memiliki kelas yang berbeda untuk negara bagian yang berbeda ... Semoga membantu!
sumber