No puedo entender cómo traer imágenes al frente usando CSS. Ya intenté configurar el índice z en 1000 y la posición en relativa, pero aún falla.
Aquí hay un ejemplo:
#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>

Respuestas:
Agregar
z-index:-1yposition:relativeal contenido#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>fuente
Z-indexcontrola cómo las imágenes o divs se apilan unas sobre otras. Div / imagen con un valor de índice Z más alto ocupa el primer lugar y el más bajo se quedaría atrás.z-indexsí, pero aún así no funcionó. Lo que he aprendido de esta respuesta es quez-indextambién debe tener en cuenta la jerarquía de los padres.+1? Eso no es válido.Nota: z-index sólo funciona en elementos posicionados (
position:absolute,position:relativeoposition:fixed). Utilice uno de esos.fuente
En mi caso, tuve que mover el código html del elemento que quería al principio al final del archivo html, porque si un elemento tiene índice z y el otro no tiene índice z, no funciona.
fuente
Otra nota: el índice z debe tenerse en cuenta al mirar objetos secundarios en relación con otros objetos.
Por ejemplo
<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 dio
branch_1__childun índice z de99y diobranch_2__childun índice z de 1, pero también dio subranch_2índice z de10y subranch_1índice z de1, subranch_1__childtodavía no se mostrará delante de subranch_2__childDe todos modos, lo que estoy tratando de decir es; si un padre de un elemento que le gustaría colocar al frente tiene un índice Z más bajo que su relativo, ese elemento no se colocará más alto.
El índice z es relativo a sus contenedores. Un índice Z colocado en un contenedor más arriba en la jerarquía básicamente inicia una nueva "capa"
Incep [inception] ción
Aquí hay un violín para jugar:
https://jsfiddle.net/orkLx6o8/
fuente