Donc si je comprends z-index
bien, ce serait parfait dans cette situation:
Je veux placer l'image du bas (la balise / la carte) sous le div au-dessus. Vous ne pouvez donc pas voir les arêtes vives. Comment puis-je faire cela?
z-index:-1 // on the image tag/card
ou
z-index:100 // on the div above
ne fonctionne pas non plus. Ni une combinaison de quelque chose comme ça. Comment venir?
Stacking Context
.position: relative
static
les éléments sont statiques et ne peuvent pas se déplacerx, y or z planes
. Ils ne peuvent pas emménagerx plane (left or right)
ouy plane (top or bottom)
aimer quand nous travaillons avecposition: absolute
. Et ils ne peuvent pas non plus se déplacer dans lez plane i.e. with z-index
.z-index
dans un élément de grille?Si vous définissez la position sur une valeur autre que
static
mais que celle de votre élémentz-index
ne semble toujours pas fonctionner, il se peut qu'un élément parent ait étéz-index
défini.Les contextes d'empilement ont une hiérarchie et chaque contexte d'empilement est considéré dans l'ordre d'empilement du contexte d'empilement du parent.
Donc, avec le code HTML suivant
quelle que soit la taille de la valeur de
z-index
ofel3
sera définie, elle sera toujours sousel1
car son parent a un contexte d'empilement inférieur. Vous pouvez imaginer l'ordre d'empilement comme des niveaux où l'ordre d'empilement deel3
est en fait de 3,8, ce qui est inférieur à 5 .Si vous souhaitez vérifier les contextes d'empilement des éléments parents, vous pouvez utiliser ceci:
Il y a un excellent article sur l'empilement de contextes sur MDN
la source
Vos éléments doivent avoir un
position
attribut. (par exempleabsolute
,relative
,fixed
) ouz-index
ne fonctionnera pas.la source
Dans de nombreux cas, un élément doit être positionné pour
z-index
fonctionner.En effet, appliquer
position: relative
aux éléments de la question résoudrait probablement le problème (mais il n'y a pas assez de code fourni pour être sûr).En fait,
position: fixed
,position: absolute
etposition: sticky
permettra égalementz-index
, mais ces valeurs changent aussi la mise en page. Avecposition: relative
la mise en page n'est pas dérangé.Essentiellement, tant que l'élément n'est pas
position: static
(le paramètre par défaut), il est considéré comme positionné etz-index
fonctionnera.De nombreuses réponses à "Pourquoi z-index ne fonctionne-t-il pas?" les questions affirment que
z-index
seulement fonctionne que sur des éléments positionnés. Depuis CSS3, ce n'est plus vrai.Les éléments qui sont des éléments flexibles ou éléments de la grille peuvent utiliser
z-index
même quandposition
eststatic
.D'après les spécifications:
Voici une démonstration du
z-index
travail sur des éléments flex non positionnés: https://jsfiddle.net/m0wddwxs/la source
position: static
exactement la même chose queposition: relative
pour les éléments flex et grid en raison de la nature dynamique de ces méthodes de mise en page. Je dirais donc peut-être que ce n'est plus vrai dans CSS3 qu'un élément doit être positionné, mais que CSS3 traite les éléments flex et grid comme s'ils étaient positionnés, peu importe. Mais probablement deux façons de voir la même chose.position:relative
. Les descendants d'éléments flexibles avec une position absolue ne considéreront pas l'élément flexible comme leur bloc conteneur car l'élément flexible n'est pas positionné. ( jsfiddle.net/0yo7utfL/2 )overflow-y: scroll
empêcheoverflow-x: visible
de fonctionner ... pouvez-vous s'il vous plaît jeter un oeil?