Je n'arrive pas à comprendre comment mettre en avant des images avec CSS
. J'ai déjà essayé de définir z-index sur 1000 et position sur relative, mais cela échoue toujours.
Voici un exemple
#header {
background: url(http://placehold.it/420x160) center top no-repeat;
}
#header-inner {
background: url(http://placekitten.com/150/200) right top no-repeat;
}
.logo-class {
height: 128px;
}
.content {
margin-left: auto;
margin-right: auto;
table-layout: fixed;
border-collapse: collapse;
}
.td-main {
text-align: center;
padding: 80px 10px 80px 10px;
border: 1px solid #A02422;
background: #ABABAB;
}
<body>
<div id="header">
<div id="header-inner">
<table class="content">
<col width="400px" />
<tr>
<td>
<table class="content">
<col width="400px" />
<tr>
<td>
<div class="logo-class"></div>
</td>
</tr>
<tr>
<td id="menu"></td>
</tr>
</table>
<table class="content">
<col width="120px" />
<col width="160px" />
<col width="120px" />
<tr>
<td class="td-main">text</td>
<td class="td-main">text</td>
<td class="td-main">text</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!-- header-inner -->
</div>
<!-- header -->
</body>
Ajouter z-index:-1
et position:relative
à .content
#header {
background: url(http://placehold.it/420x160) center top no-repeat;
}
#header-inner {
background: url(http://placekitten.com/150/200) right top no-repeat;
}
.logo-class {
height: 128px;
}
.content {
margin-left: auto;
margin-right: auto;
table-layout: fixed;
border-collapse: collapse;
z-index: -1;
position:relative;
}
.td-main {
text-align: center;
padding: 80px 10px 80px 10px;
border: 1px solid #A02422;
background: #ABABAB;
}
<body>
<div id="header">
<div id="header-inner">
<table class="content">
<col width="400px" />
<tr>
<td>
<table class="content">
<col width="400px" />
<tr>
<td>
<div class="logo-class"></div>
</td>
</tr>
<tr>
<td id="menu"></td>
</tr>
</table>
<table class="content">
<col width="120px" />
<col width="160px" />
<col width="120px" />
<tr>
<td class="td-main">text</td>
<td class="td-main">text</td>
<td class="td-main">text</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!-- header-inner -->
</div>
<!-- header -->
</body>
Remarque: z-index ne fonctionne que sur les éléments positionnés (position:absolute
, position:relative
ou position:fixed
). Utilisez l'un de ceux-ci.
Dans mon cas, je devais déplacer le code html de l'élément que je voulais au début du fichier html, car si l'un des éléments contient z-index et l'autre non, il ne fonctionne pas.
Autre remarque: z-index doit être pris en compte lors de l'examen d'objets enfants par rapport à d'autres objets.
Par exemple
<div class="container">
<div class="branch_1">
<div class="branch_1__child"></div>
</div>
<div class="branch_2">
<div class="branch_2__child"></div>
</div>
</div>
Si vous avez donné branch_1__child
un z-index de 99
et que vous avez donné branch_2__child
un z-index de 1, vous avez également donné à votre branch_2
un z-index de 10
et votre branch_1
un z-index de 1
, votre branch_1__child
n'apparaîtra toujours pas devant votre branch_2__child
Quoi qu'il en soit, ce que j'essaie de dire, c'est; Si le parent d'un élément que vous souhaitez placer devant comporte un indice z inférieur à son relatif, cet élément ne sera pas placé plus haut.
Le z-index est relatif à ses conteneurs. Un z-index placé sur un conteneur plus haut dans la hiérarchie démarre un nouveau "calque"
Inception [création]
Voici un violon à jouer: