Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie behebt man den Webkit-Fehler „:hover' und „Adjacent-Sibling Selectors'?

DDD
Freigeben: 2024-10-24 00:06:29
Original
628 Leute haben es durchsucht

How to Resolve the :hover and Adjacent-Sibling Selectors Webkit Bug?

Webkit-Fehler mit :hover und Adjacent-Sibling-Selektoren verstehen und beheben

In Webkit-Browsern (z. B. Chrome, Safari) ein Fehler entsteht, wenn die Pseudoklasse :hover neben mehreren benachbarten Geschwisterselektoren verwendet wird. Insbesondere wird der Hover-Effekt nicht wie erwartet angewendet, wenn ein drittes benachbartes Geschwisterelement eingeführt wird.

Zum Beispiel:

a:hover + div {}
Nach dem Login kopieren

Dieser Code funktioniert einwandfrei. Das Hinzufügen eines weiteren benachbarten Geschwisterselektors:

div:hover + a + div {}
Nach dem Login kopieren

Unterbricht das beabsichtigte Verhalten in Webkit-Browsern.

Merkwürdigerweise ändert sich der Stil, wenn Sie den Mauszeiger zuerst über das Ankerelement und dann über das div-Element bewegen korrekt angewendet wird. Darüber hinaus wird das Problem durch das Einschließen des angrenzenden ~-Geschwisterselektors behoben, auch wenn kein Stil deklariert ist:

div:hover ~ div {}
Nach dem Login kopieren

Um diesen Fehler zu beheben, können Sie eine Problemumgehung implementieren, indem Sie eine Animation auf dem Body-Element simulieren:

body { -webkit-animation: bugfix infinite 1s; }

@-webkit-keyframes bugfix { 
  from { padding: 0; } 
  to { padding: 0; } 
}
Nach dem Login kopieren

Indem Sie eine leere Animation am Körper auslösen, können Sie den Fehler effektiv umgehen. Sie können die Lösung in diesem JSFiddle überprüfen: http://jsfiddle.net/jalbertbowdenii/ds2yY/1/

Das obige ist der detaillierte Inhalt vonWie behebt man den Webkit-Fehler „:hover' und „Adjacent-Sibling Selectors'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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