Ich habe CSS, das die Formatierung ändert, wenn Sie mit der Maus über ein Element fahren.
HTML:
<div class="test"> blah </div>
CSS:
.test:hover { border: 1px solid red; }
In einigen Fällen möchte ich beim Schweben kein CSS anwenden. Eine Möglichkeit wäre, einfach die CSS-Klasse mit jQuery aus dem div zu entfernen, aber das würde andere Dinge kaputt machen, da ich diese Klasse auch zum Formatieren ihrer untergeordneten Elemente verwende.
Das führte mich zu der Frage: Gibt es eine Möglichkeit, das 'Hover'-CSS-Styling aus einem Element zu entfernen?
Verwenden Sie die
:not
Pseudoklasse, um die Klassen auszuschließen, auf die der Hover nicht angewendet werden soll:GEIGE
Dies macht, was Sie wollen, in einer CSS-Regel!
quelle
:hover
. Dies kann daran liegen, dass ich SASS verwende, nicht sicher.touchDevice
Klasse zubody
meinen CSS-Regeln hinzufügte und diese in etwas wiebody:not(.touchDevice) .button:hover { ... }
Fügen Sie eine neue CSS-Klasse hinzu:
und
Die "spezifischere" CSS-Regel gewinnt, sodass diese Version mit Rand: 0 die an anderer Stelle angegebene generische Version überschreibt.
quelle
Ich hatte auch dieses Problem. Meine Lösung bestand darin, ein Element über dem Element zu haben, auf das ich keinen Hover-Effekt haben möchte:
quelle
Sie möchten den Selektor behalten, damit das Hinzufügen / Entfernen nicht funktioniert. Anstatt einen festen und schnellen CSS-Selektor (oder zwei) zu schreiben, können Sie möglicherweise einfach den ursprünglichen Selektor verwenden, um eine neue CSS-Regel auf dieses Element anzuwenden, basierend auf einem Kriterium:
quelle