Opacité vs Z-Index : la superposition invisible
Lors de la superposition d'éléments dans les navigateurs Web, deux propriétés clés entrent en jeu : l'opacité et indice z. L'opacité contrôle la transparence d'un élément, tandis que le z-index détermine sa position dans l'ordre d'empilement. Cependant, une interaction surprenante entre ces propriétés a été découverte.
Le problème : carrément en conflit
Considérons le scénario dans lequel une « fenêtre contextuelle » est ajoutée au-dessus d'un carré marine. Intuitivement, on pourrait s’attendre à ce que le carré soit complètement caché sous la fenêtre contextuelle. Pourtant, lorsque l'opacité du carré est inférieure à 1 (par exemple 0,3), une partie du carré reste visible sous la fenêtre contextuelle.
Démêler le mystère
Ce comportement n'est pas un bug mais plutôt un choix de conception délibéré de la part des navigateurs Web. Conformément au module de couleur CSS, les éléments dont l'opacité est inférieure à 1 créent un nouveau contexte d'empilement. Par conséquent, les éléments en dehors de ce contexte ne peuvent pas y être superposés, quelles que soient leurs valeurs d'index z.
Le contexte Silent Stacking
Par défaut, les éléments non positionnés avec une opacité inférieure à 1 est traitée comme si elle avait un « z-index : 0 » et une « opacité : 1 ». Cela signifie qu'ils seront toujours rendus dans le même ordre d'empilement que s'ils se trouvaient au bas de leur contexte d'empilement parent, quelles que soient leurs valeurs réelles d'index z.
Résoudre le conflit
Pour remédier à ce comportement, on peut simplement éviter d'utiliser des valeurs d'opacité inférieures à 1 pour les éléments qui devraient être entièrement masqués. Alternativement, en positionnant l'élément avec une opacité inférieure à 1 à l'aide de propriétés CSS telles que « position : absolue » ou « position : fixe », l'ordre d'empilement souhaité peut être obtenu, car la propriété « z-index » contrôlera alors l'ordre d'empilement dans le nouveau contexte d'empilement créé par l'opacité.
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!