Wie wende ich einen Hover-Effekt auf ein a
Element an, jedoch nicht auf ein a
Element mit der Klasse active
?
a:hover(not: .active)
Scheint etwas zu fehlen.
Wie wende ich einen Hover-Effekt auf ein a
Element an, jedoch nicht auf ein a
Element mit der Klasse active
?
a:hover(not: .active)
Scheint etwas zu fehlen.
Antworten:
Die funktionale Notation ist aktiviert :not()
, nicht :hover
:
a:not(.active):hover
Wenn Sie es vorziehen, :hover
zuerst zu setzen , ist das in Ordnung:
a:hover:not(.active)
Es spielt keine Rolle, welche Pseudoklasse zuerst oder zuletzt kommt; In beiden Fällen funktioniert der Selektor genauso. Es ist einfach meine persönliche Konvention, als :hover
letztes zu setzen, da ich dazu neige, Benutzerinteraktions-Pseudoklassen hinter strukturelle Pseudoklassen zu stellen.
Sie haben die Möglichkeit, den not()
Selektor zu verwenden.
a:not(.active):hover { ... }
Dies funktioniert jedoch möglicherweise nicht in allen Browsern, da nicht alle Browser CSS3-Funktionen implementieren.
Wenn Sie eine große Zielgruppe ansprechen und ältere Browser unterstützen möchten, ist es am besten, einen Stil für das zu definieren .active:hover
und rückgängig zu machen, was auch immer Sie tun a:hover
.
not()
msdn.microsoft.com/en-us/library/… nicht unterstützen . Vielleicht sehen Sie die Antwort von @Mendhak, wenn Sie dies tun.