Ich benutze Hover , Aktiv und Deaktiviert , um Buttons zu stylen.
Das Problem ist jedoch, dass bei deaktivierter Schaltfläche der Hover und die aktiven Stile weiterhin gelten.
Wie wende ich Hover und Active nur auf aktivierten Schaltflächen an?
Sie können Folgendes verwenden : Aktivierte Pseudoklasse, aber Notice unterstützt IE<9
dies nicht :
button:hover:enabled{
/*your styles*/
}
button:active:enabled{
/*your styles*/
}
:not()
Selektor, der aber erst seit IE9 unterstützt wird. Siehe: developer.mozilla.org/en-US/docs/Web/CSS/:notbutton:hover:enabled
schien in meinem Fall nicht zu funktionieren. Verwenden der IE9-Emulation unter IE11.Sie können dies versuchen ..
quelle
Warum nicht das Attribut "disabled" in CSS verwenden? Dies muss in allen Browsern funktionieren.
quelle
.button[disabled], .button[disabled]:hover, .button[disabled]:focus, .button[disabled]:active {}
Ein Ansatz mit geringerer Spezifität, der in den meisten modernen Browsern funktioniert (IE11 + und mit Ausnahme einiger mobiler Opera- und IE-Browser - http://caniuse.com/#feat=pointer-events ):
Die
pointer-events: none
Regel deaktiviert den Schwebeflug. Sie müssen die Spezifität nicht mit einem.btn[disabled]:hover
Selektor erhöhen , um den Hover-Stil aufzuheben.(Zu Ihrer Information, dies sind die einfachen HTML-Zeigerereignisse, nicht die umstrittenen Zeigerereignisse für abstrakte Eingabegeräte.)
quelle
In sass (scss):
quelle
Wenn Sie
LESS
oder verwendenSass
, können Sie Folgendes versuchen:quelle
Eine Möglichkeit besteht darin, eine bestimmte Klasse hinzuzufügen, während Schaltflächen deaktiviert und der Hover- und der aktive Status für diese Klasse in CSS überschrieben werden. Oder entfernen Sie eine Klasse, wenn Sie die Hover- und aktiven Pseudo-Eigenschaften für diese Klasse nur in CSS deaktivieren und angeben. In beiden Fällen kann dies wahrscheinlich nicht nur mit CSS durchgeführt werden. Sie müssen ein wenig js verwenden.
quelle