Heim > Web-Frontend > js-Tutorial > So lösen Sie das Problem des ungültigen Hovers in js

So lösen Sie das Problem des ungültigen Hovers in js

零下一度
Freigeben: 2017-06-25 09:24:05
Original
2484 Leute haben es durchsucht

Dies wird tatsächlich durch die Priorität von CSS verursacht.

Schauen wir uns zunächst an, wie Hover die Hintergrundfarbe normal festlegen kann, ohne js zum Hinzufügen von CSS-Attributen zu verwenden.

<div id="add"></div>
Nach dem Login kopieren
#add{
  width: 50px;
  height: 50px;
  background-color: greenyellow;
}#add:hover{
  background-color: #000;
}
Nach dem Login kopieren

Das Bild auf der linken Seite ist standardmäßig und das Bild auf der Rechts ist die Zeit, in der die Maus platziert wird, jetzt kann der Hover immer noch normal angezeigt werden.

(Die Bilder unten sind alle standardmäßig auf der linken Seite und schweben auf der rechten Seite. Dies sollte daran liegen, dass das Screenshot-Tool die Maus nicht erfassen kann.)

Aber wenn der CSS-Stil über js eingefügt wird, Der Hover-Stil wird verwendet, wenn die Maus platziert wird. Er wird nicht wirksam.

var add = document.getElementById("add");
add.style.backgroundColor = "red";
Nach dem Login kopieren

Das im Hover festgelegte Attribut #000 ist jetzt ungültig.

Dies ist jedoch nicht die Funktion, die die Hover-Pseudoklasse verloren hat. Wenn es sich bei der Einstellung nicht um einen von js hinzugefügten Stil handelt, können Sie sehen, dass Hover nicht ungültig ist. Versuchen Sie beispielsweise, eine Schriftfarbe hinzuzufügen.

#add:hover{
  background-color: #000;
  color: yellow;
}
Nach dem Login kopieren

Sie können sehen, dass sich die Schriftfarbe noch ändert.

Der Grund dafür ist, dass der CSS-Stil, der zu js hinzugefügt werden soll, direkt zum Stil des HTML-Tags hinzugefügt wird und die Priorität des Stils höher ist als die der CSS-Pseudoklasse.

Von oben nach unten Stil, Hover, ID-Auswahl.

Sie können im Browser-Debugging-Tool sehen, dass js direkt zum Stil hinzugefügt wird.

Was sollen wir also tun?

Es geht um die Priorität des Selektors. Es wurde jedoch nicht über die Priorität von CSS-Pseudoklassen und -Stilen gesprochen.

Aber die Pseudoklasse :hover ist ebenfalls ungültig. Beschreibungsstil>CSS-Pseudoklasse>id>Klasse.

Fügen Sie einfach !important nach dem :hover-Attribut hinzu. Sollte vor allem anderen Priorität haben! !

!important>style>css pseudo-class>id>class.

#add:hover{
  background-color: #000 !important;
}
Nach dem Login kopieren

Jetzt habe ich endlich das gewünschte Ergebnis erreicht.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des ungültigen Hovers in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage