Maison > interface Web > tutoriel CSS > Opacité vs Z-Index : pourquoi le Z-Index ne fonctionne-t-il pas toujours avec des éléments semi-transparents ?

Opacité vs Z-Index : pourquoi le Z-Index ne fonctionne-t-il pas toujours avec des éléments semi-transparents ?

DDD
Libérer: 2024-12-08 15:41:10
original
591 Les gens l'ont consulté

Opacity vs. Z-Index: Why Doesn't Z-Index Always Work with Semi-Transparent Elements?

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal