Maison > interface Web > tutoriel CSS > Pourquoi Z-Index ne fonctionne-t-il pas comme prévu avec un positionnement fixe ?

Pourquoi Z-Index ne fonctionne-t-il pas comme prévu avec un positionnement fixe ?

Mary-Kate Olsen
Libérer: 2024-12-23 15:43:11
original
870 Les gens l'ont consulté

Why Doesn't Z-Index Work as Expected with Fixed Positioning?

z-index ne fonctionne pas avec un positionnement fixe

Dans la mise en page, z-index détermine l'ordre d'empilement des éléments sur une page Web, avec des valeurs plus élevées apparaissant en haut. Cependant, lorsqu'un élément est positionné de manière fixe, apparemment contre l'intuition, il peut être difficile de le placer derrière un élément positionné statiquement à l'aide du z-index.

Exemple

Considérez le code HTML et CSS suivant :

<div>
Copier après la connexion
#over {
  width: 600px;
  z-index: 10;
}

#under {
  position: fixed;
  top: 5px;
  width: 420px;
  left: 20px;
  border: 1px solid;
  height: 10%;
  background: #fff;
  z-index: 1;
}
Copier après la connexion

Comme le montre l'exemple, malgré la valeur d'index z plus élevée attribuée à #over, l'élément positionné fixe #under reste en haut.

Explication

Le comportement confondant découle des différences inhérentes entre le positionnement statique et fixe.

  • Le positionnement statique laisse les éléments non affectés par le z-index, car ils se trouvent dans le flux normal du document.
  • Le positionnement fixe, quant à lui, supprime les éléments du flux normal et les positionne par rapport à la fenêtre (l'écran de l'utilisateur).

Dans ce contexte, z- L'index détermine uniquement l'ordre d'empilement des éléments fixes par rapport aux autres éléments fixes. éléments.

Solution

Pour remédier à ce problème, ajoutez position: relative à l'élément positionné statiquement. Cela crée un nouveau contexte d'empilement pour #over, permettant à z-index de déterminer sa position par rapport au contexte nouvellement créé :

#over {
  width: 600px;
  z-index: 10;
  position: relative;
}

#under {
  position: fixed;
  top: 14px;
  width: 415px;
  left: 53px;
  border: 1px solid;
  height: 10%;
  background: #f0f;
  z-index: 1;
}
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal