Maison  >  Article  >  interface Web  >  Pourquoi :hover et plusieurs sélecteurs de frères et sœurs adjacents provoquent-ils des bugs dans Safari et Chrome ?

Pourquoi :hover et plusieurs sélecteurs de frères et sœurs adjacents provoquent-ils des bugs dans Safari et Chrome ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 03:42:30950parcourir

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

Bogue Safari et Chrome avec :hover et plusieurs sélecteurs de frères et sœurs adjacents

Dans le développement Web, en utilisant la pseudo-classe :hover et adjacent Les sélecteurs -sibling sont généralement pris en charge par les principaux navigateurs tels que Safari, Chrome, Opera et Firefox. Par exemple, le code suivant fonctionne comme prévu :

a:hover + div {}

Cependant, lorsque plusieurs sélecteurs de frères et sœurs adjacents sont ajoutés, les navigateurs Webkit (y compris Safari et Chrome) présentent un comportement inattendu :

div:hover + a + div {}

Dans de tels cas, Webkit ne parvient pas à appliquer le style comme prévu.

Une solution de contournement pour résoudre ce bug consiste à utiliser une déclaration de style sur l'élément body pour créer un effet d'animation subtil :

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

@-webkit-keyframes bugfix { 
  from { padding: 0; } 
  to { padding: 0; } 
}

Cette animation n'a aucun effet visible mais déclenche un recalcul de style, permettant aux navigateurs Webkit d'appliquer correctement les styles de sélecteur :hover et adjacent-sibling.

Voici un exemple pour démontrer la solution de contournement : http://jsfiddle. net/jalbertbowdenii/ds2yY/1/.

En employant cette technique, vous pouvez surmonter les bogues du Webkit et garantir un comportement cohérent sur différents navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn