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:-1
yposition:relative
al 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-index
controla 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-index
sí, pero aún así no funcionó. Lo que he aprendido de esta respuesta es quez-index
tambié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:relative
oposition: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__child
un índice z de99
y diobranch_2__child
un índice z de 1, pero también dio subranch_2
índice z de10
y subranch_1
índice z de1
, subranch_1__child
todavía no se mostrará delante de subranch_2__child
De 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