J'essaie de faire la div noire (relative) au-dessus de la deuxième jaune (absolue). Le parent de la div noire a aussi une position absolue.
Code:
#relative {
position: relative;
width: 40px;
height: 100px;
background: #000;
z-index: 1;
margin-top: 30px;
}
.absolute {
position: absolute;
top: 0; left: 0;
width: 200px;
height: 50px;
background: yellow;
z-index: 0;
}
<div class="absolute">
<div id="relative"></div>
</div>
<div class="absolute" style="top: 54px"></div>
Résultat attendu:
En raison du contexte Stacking , la définition d’un index z l’appliquera également à tous les enfants.
Vous pouvez faire les deux frères <div>
s au lieu de descendants.
<div class="absolute"></div>
<div id="relative"></div>
Je me débattais avec ce problème et j’ai appris (grâce à this post) que:
div:first-child {
opacity: .99;
}
.red, .green, .blue {
position: absolute;
width: 100px;
color: white;
line-height: 100px;
text-align: center;
}
.red {
z-index: 1;
top: 20px;
left: 20px;
background: red;
}
.green {
top: 60px;
left: 60px;
background: green;
}
.blue {
top: 100px;
left: 100px;
background: blue;
}
<div>
<span class="red">Red</span>
</div>
<div>
<span class="green">Green</span>
</div>
<div>
<span class="blue">Blue</span>
</div>
J'avais du mal à comprendre comment mettre une div sur une image comme celle-ci:
Peu importe la façon dont j'ai configuré z-index dans les deux divs (le wrapper de l'image) et dans la section que je recevais, voici ceci:
Il s'avère que je n'avais pas configuré l'arrière-plan de la section en tant que background: white;
donc en gros c'est comme ça:
<div class="img-wrp">
<img src="myimage.svg"/>
</div>
<section>
<other content>
</section>
section{
position: relative;
background: white; /* THIS IS THE IMPORTANT PART NOT TO FORGET */
}
.img-wrp{
position: absolute;
z-index: -1; /* also worked with 0 but just to be sure */
}
Il suffit d’ajouter la seconde div .absolute avant l’autre div .second:
<div class="absolute" style="top: 54px"></div>
<div class="absolute">
<div id="relative"></div>
</div>
Parce que les deux éléments ont un index 0.
Que dis-tu de ça?
<div class="relative">
<div class="yellow-div"></div>
<div class="yellow-div"></div>
<div class="absolute"></div>
</div>
.relative{
position:relative;
}
.absolute {
position:absolute;
width: 40px;
height: 100px;
background: #000;
z-index: 1;
top:30px;
left:0px;
}
.yellow-div {
position:relative;
width: 200px;
height: 50px;
background: yellow;
margin-bottom:4px;
z-index:0;
}
utilisez le div relatif comme wrapper et laissez les div jaunes se positionner normalement.
Seul le bloc noir doit alors avoir une position absolue.
J'ai résolu mon problème z-index
en créant le wrapper z-index:-1
et le corps z-index:-2
, ainsi que les autres divs z-index:1
.
Et puis les dernières divisions ne fonctionnaient que si j'avais z-index
200+. Même si j'avais position:relative
sur chaque élément, avec le corps par défaut z-index
, cela ne fonctionnerait pas.
J'espère que ça aide quelqu'un.
essayez ce code:
.absolute {
position: absolute;
top: 0; left: 0;
width: 200px;
height: 50px;
background: yellow;
}
Vous devez mettre la deuxième division au-dessus de la première, car les deux ont un z-index égal à zéro, de sorte que l'ordre dans le dom décidera lequel est au-dessus. Cela affecte également le div positionné relatif car son z-index concerne des éléments à l'intérieur du div parent.
<div class="absolute" style="top: 54px"></div>
<div class="absolute">
<div id="relative"></div>
</div>
Css reste le même.