Penso che si sta cercando di complicare le cose. Una soluzione semplice consiste semplicemente nello stile della casella di controllo per impostazione predefinita con gli stili non selezionati e quindi aggiungere gli stili di stato selezionati.
input[type="checkbox"] {
// Unchecked Styles
}
input[type="checkbox"]:checked {
// Checked Styles
}
Mi scuso per aver tirato su un vecchio thread ma sentivo che avrebbe potuto usare una risposta migliore.
EDIT (2016/03/03):
stato W3C Caratteristiche che :not(:checked)
come loro esempio per la selezione dello stato incontrollato.Tuttavia, questo è esplicitamente lo stato non controllato e applicherà solo quegli stili allo stato deselezionato. Questo è utile per aggiungere uno stile che è necessario solo sullo stato deselezionato e che sarebbe necessario rimuovere dallo stato selezionato se usato nel selettore input[type="checkbox"]
. Vedere l'esempio sotto per chiarimenti.
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
}
Senza utilizzare :not(:checked)
nell'esempio sopra il selettore :checked
avrebbe bisogno di usare un border: none;
per ottenere lo stesso effetto.
Utilizzare lo input[type="checkbox"]
per lo stile di base per ridurre la duplicazione.
Utilizzare lo input[type="checkbox"]:not(:checked)
per gli stili espliciti non selezionati che non si desidera applicare allo stato selezionato.
fonte
2015-05-21 16:34:38
Solo per aggiungere a questa risposta che la selezione: non (: selezionata) funziona perfettamente su Chrome, ma non su IE (testato su 9 e 11). –
@Bruno Finger:: checked e: not (: checked) dovrebbero funzionare entrambi su IE, tranne che entrambi sono ugualmente colpiti da un bug in cui la modifica dello stato controllato non aggiorna gli stili degli elementi targetizzati in relazione al controllo/elemento non controllato. – BoltClock