Maison > interface Web > tutoriel CSS > Comment « clip-path » impacte-t-il l'ordre d'empilement des éléments en CSS ?

Comment « clip-path » impacte-t-il l'ordre d'empilement des éléments en CSS ?

Linda Hamilton
Libérer: 2024-11-25 15:43:10
original
281 Les gens l'ont consulté

How Does `clip-path` Impact Element Stacking Order in CSS?

Comment Clip-Path affecte l'ordre d'empilement des éléments dans le DOM

Clip-path est une propriété CSS qui crée une région de découpage, définir quelles parties du contenu d'un élément sont visibles. Cependant, cela a un effet inattendu sur l'ordre d'empilement, plaçant les éléments plus tard dans le DOM sous ceux avec un chemin de clip.

Cause du problème

Cela se produit parce que , selon la spécification CSS, l'utilisation de valeurs de chemin de clip non nulles crée un contexte d'empilement. Un contexte d'empilement est un espace tridimensionnel où les éléments sont rendus et superposés en fonction de leur z-index.

Dans le cas d'un chemin de clip, l'élément avec le chemin de clip est placé dans un nouveau contexte d'empilement. , et les éléments suivants sans positionnement explicite sont rendus dans le contexte d'empilement d'origine. Cela signifie que les éléments avec un chemin de détourage chevaucheront les éléments sans positionnement explicite même s'ils apparaissent plus tard dans le DOM.

Résoudre le problème

Pour résoudre ce problème, vous peut définir explicitement la position de l'élément avec le chemin du clip sur "relatif" ou "absolu", ce qui le déplace vers le nouveau contexte d'empilement créé par le chemin du clip. Cela garantira que les éléments ultérieurs dans le DOM restent au-dessus de l'élément avec le chemin du clip.

Exemple

Considérez le code CSS suivant :

header {
  background: #a00;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5em), 0 100%);
}

h1 {
  margin: 0;
  padding: 2em;
  font: 300%;
  color: white;
  text-align: center;
}

section {
  background: #ccc;
  padding-top:5em;
  margin-top:-5em;
}

img {
  margin-top: -10em;
}
Copier après la connexion

Initialement, l'image est cachée derrière l'en-tête en raison du chemin de détourage sur l'en-tête. En définissant "position : relative" sur l'image, elle se déplace vers le même contexte d'empilement que l'en-tête et apparaît au-dessus de celle-ci :

img {
  margin-top: -10em;
  position: relative;
}
Copier après la connexion

Conclusion

Utilisation du clip -path crée un contexte d'empilement qui affecte l'ordre d'empilement des éléments suivants. Pour garantir une superposition correcte, définissez explicitement la position de l'élément avec le chemin de détourage sur "relatif" ou "absolu" ou envisagez d'utiliser d'autres techniques pour contrôler le chevauchement des éléments.

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