Ich weiß, dass es eine offizielle CSS3 :checked
-Pseudoklasse gibt, aber gibt es eine :unchecked
Pseudoklasse, und haben sie die gleiche Browserunterstützung?
In der Referenz von Sitepoint wird keine erwähnt, jedoch macht diese whatwg-Spezifikation (was auch immer das ist).
Ich weiß, dass das gleiche Ergebnis erzielt werden kann, wenn die Klassen :checked
und :not()
Pseudoklassen kombiniert werden, aber ich bin immer noch neugierig:
input[type="checkbox"]:not(:checked) {
/* styles */
}
Bearbeiten:
Das w3c empfiehlt die gleiche Technik
Ein deaktiviertes Kontrollkästchen kann mithilfe der Negationspseudoklasse aktiviert werden:
:not(:checked)
quelle
Ich denke, Sie versuchen, die Dinge zu komplizieren. Eine einfache Lösung besteht darin, Ihr Kontrollkästchen standardmäßig mit den nicht aktivierten Stilen zu formatieren und dann die aktivierten Statusstile hinzuzufügen.
Ich entschuldige mich dafür, dass ich einen alten Thread angesprochen habe, hatte aber das Gefühl, dass er eine bessere Antwort hätte gebrauchen können.
EDIT (03.03.2016):
In den W3C-Spezifikationen wird dies
:not(:checked)
als Beispiel für die Auswahl des nicht aktivierten Status angegeben. Dies ist jedoch explizit der deaktivierte Status und wendet diese Stile nur auf den deaktivierten Status an. Dies ist nützlich, um Stile hinzuzufügen, die nur im deaktivierten Status erforderlich sind und bei Verwendung iminput[type="checkbox"]
Selektor aus dem aktivierten Status entfernt werden müssten . Zur Verdeutlichung siehe Beispiel unten.Ohne die Verwendung
:not(:checked)
im obigen Beispiel hätte der:checked
Selektor a verwenden müssenborder: none;
, um den gleichen Effekt zu erzielen.Verwenden Sie das
input[type="checkbox"]
For-Base-Styling, um Doppelarbeit zu reduzieren.Verwenden Sie die
input[type="checkbox"]:not(:checked)
Option für explizite ungeprüfte Stile, die Sie nicht auf den aktivierten Status anwenden möchten.quelle
:not(:checked)
:first-child
,:last-child
oder:nth-child
Wähler in Kombination mit:checked
.:not(:checked)
wird die von Ihnen angegebene Situation nicht abdecken, es sei denn, ich verstehe Ihren Kommentar falsch.Es gibt keine: ungeprüfte Pseudoklasse. Wenn Sie jedoch die: geprüfte Pseudoklasse und den Geschwister-Selektor verwenden, können Sie zwischen beiden Zuständen unterscheiden. Ich glaube, alle neuesten Browser unterstützen die: überprüfte Pseudoklasse. Weitere Informationen finden Sie in dieser Ressource: http://www.whatstyle.net/articles/18/pretty_form_controls_with_css
Mit jquery erhalten Sie eine bessere Browserunterstützung. Mithilfe einer Klickfunktion können Sie erkennen, wann der Klick erfolgt. Wenn dies aktiviert ist oder nicht, können Sie bei Bedarf eine Klasse hinzufügen oder eine Klasse entfernen.
quelle
Ich habe damit umgegangen, indem ich den Klassennamen eines Labels basierend auf einer Bedingung geändert habe. Auf diese Weise benötigen Sie nur ein Etikett und können verschiedene Klassen für verschiedene Zustände haben ... Hoffe, das hilft!
quelle