Heim > Web-Frontend > CSS-Tutorial > Warum verursachen :hover und mehrere Selektoren für benachbarte Geschwister Fehler in Safari und Chrome?

Warum verursachen :hover und mehrere Selektoren für benachbarte Geschwister Fehler in Safari und Chrome?

Patricia Arquette
Freigeben: 2024-10-24 03:42:30
Original
1056 Leute haben es durchsucht

Why Do :hover and Multiple Adjacent-Sibling Selectors Cause Bugs in Safari and Chrome?

Safari- und Chrome-Bug mit :hover und mehreren Adjacent-Sibling-Selektoren

In der Webentwicklung unter Verwendung der :hover-Pseudoklasse und angrenzend -sibling-Selektoren werden im Allgemeinen von gängigen Browsern wie Safari, Chrome, Opera und Firefox unterstützt. Beispielsweise funktioniert der folgende Code wie vorgesehen:

a:hover + div {}
Nach dem Login kopieren

Wenn jedoch mehrere benachbarte Geschwisterselektoren hinzugefügt werden, zeigen Webkit-Browser (einschließlich Safari und Chrome) unerwartetes Verhalten:

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

In solchen Fällen wendet Webkit den Stil nicht wie erwartet an.

Eine Problemumgehung zur Behebung dieses Fehlers besteht darin, eine Stildeklaration für das Body-Element zu verwenden, um einen subtilen Animationseffekt zu erzeugen:

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

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

Diese Animation hat keinen sichtbaren Effekt, löst jedoch eine Neuberechnung des Stils aus, sodass Webkit-Browser die Auswahlstile :hover und angrenzende Geschwister korrekt anwenden können.

Hier ist ein Beispiel zur Veranschaulichung der Problemumgehung: http://jsfiddle. net/jalbertbowdenii/ds2yY/1/.

Durch den Einsatz dieser Technik können Sie die Webkit-Fehler überwinden und ein konsistentes Verhalten über verschiedene Browser hinweg sicherstellen.

Das obige ist der detaillierte Inhalt vonWarum verursachen :hover und mehrere Selektoren für benachbarte Geschwister Fehler in Safari und Chrome?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage