Sanırım işleri fazla karmaşıklaştırmaya çalışıyorsun. Basit bir çözüm, onay kutunuzu varsayılan olarak işaretlenmemiş stillerle biçimlendirmek ve ardından işaretli durum stillerini eklemektir.
input[type="checkbox"] {
// Unchecked Styles
}
input[type="checkbox"]:checked {
// Checked Styles
}
Eski bir konuyu açtığım için özür dilerim ama bunun daha iyi bir cevap verebileceğini hissettim.
DÜZENLE (3/3/2016):
W3C Specs :not(:checked)
, kontrol edilmemiş durumu seçme örneği olarak bunu belirtir . Ancak, bu açıkça kontrol edilmemiş durumdur ve bu stilleri yalnızca kontrol edilmemiş duruma uygular. Bu, yalnızca işaretlenmemiş durumda gerekli olan ve input[type="checkbox"]
seçici üzerinde kullanıldığında işaretli durumdan kaldırılması gereken stil eklemek için kullanışlıdır . Açıklama için aşağıdaki örneğe bakın.
input[type="checkbox"] {
/* Base Styles aka unchecked */
font-weight: 300; // Will be overwritten by :checked
font-size: 16px; // Base styling
}
input[type="checkbox"]:not(:checked) {
/* Explicit Unchecked Styles */
border: 1px solid #FF0000; // Only apply border to unchecked state
}
input[type="checkbox"]:checked {
/* Checked Styles */
font-weight: 900; // Use a bold font when checked
}
:not(:checked)
Yukarıdaki örnekte kullanılmasa , :checked
seçicinin border: none;
aynı etkiyi elde etmek için a kullanması gerekirdi .
input[type="checkbox"]
Çoğaltmayı azaltmak için temel stil için kullanın .
input[type="checkbox"]:not(:checked)
İşaretli duruma uygulamak istemediğiniz açıkça işaretlenmemiş stiller için kullanın .