Introduction
Dans ce contexte, nous avons deux divs sans aucun style complexe (simplement couleur d'arrière-plan). Nous manipulons le deuxième div pour chevaucher le premier en appliquant une marge supérieure négative. Cependant, au lieu de voir un élément chevaucher complètement l'autre, nous trouvons le deuxième div glissant entre le contenu et l'arrière-plan du premier div, présentant un comportement inattendu.
L'ordre de la peinture
Pour comprendre ce comportement, nous devons nous plonger dans les subtilités de l'ordre de peinture dans les navigateurs. L'ordre de peinture des éléments dans un contexte d'empilement suit une séquence prédéfinie :
Expliquer le chevauchement
Dans notre exemple, lorsque le deuxième div chevauche le premier, la séquence de peinture suivante se produit :
Étant donné que le contenu du premier div est peint avant l'arrière-plan du deuxième div, le texte semble être positionné au-dessus du fond vert, créant l'illusion que le deuxième div glisse entre eux.
Changer le comportement
Bien que l'ordre de peinture par défaut puisse conduire à de telles situations, il est possible de modifier le comportement en définissant l'opacité de l'élément qui se chevauche sur un valeur inférieure à 1. Cela déclenche l'étape de peinture de l'opacité avant l'étape de peinture du contenu, garantissant que l'arrière-plan de l'élément superposé apparaît sous son contenu.
Dans notre exemple, l'ajout d'opacité : 0,9999 au deuxième div conduit au comportement attendu, où le fond vert recouvre complètement le contenu du premier div.
Référence
Pour une explication détaillée de l'ordre des peintures CSS, reportez-vous au site officiel du W3C. documentation :
https://www.w3.org/TR/css-backgrounds-3/#box-painting
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!