Não consigo descobrir como trazer as imagens para a frente usando CSS
. Já tentei definir o índice z como 1000 e a posição como relativa, mas ainda falhou.
Aqui está um exemplo
#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>
Respostas:
Adicionar
z-index:-1
eposition:relative
a .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>
fonte
Z-index
controla como as imagens ou divs se sobrepõem . Div / imagem com valor de índice z superior fica em primeiro lugar e o valor inferior fica para trás.z-index
significa, mas ainda não funcionou. O que aprendi com essa resposta é quez-index
você também deve levar em consideração a hierarquia dos pais.+1
? Isso não é válido.Nota: índice z só funciona em elementos posicionados (
position:absolute
,position:relative
, ouposition:fixed
). Use um desses.fonte
No meu caso, eu tive que mover o código html do elemento que eu queria na frente, no final do arquivo html, porque se um elemento tem índice z e o outro não tem índice z, ele não funciona.
fonte
Outra nota: o z-index deve ser considerado ao observar objetos filhos em relação a outros objetos.
Por exemplo
<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>
Se você forneceu
branch_1__child
um z-index de99
ebranch_2__child
um z-index de 1, mas também deubranch_2
um z-index de10
ebranch_1
um z-index de1
, seubranch_1__child
ainda não aparecerá na frente de seubranch_2__child
De qualquer forma, o que estou tentando dizer é; se o pai de um elemento que você gostaria de colocar na frente tiver um índice z menor do que seu relativo, esse elemento não será colocado em um nível mais alto.
O z-index é relativo a seus contêineres. Um Z-index colocado em um contêiner mais acima na hierarquia basicamente inicia uma nova "camada"
Início [início] ção
Aqui está um violino para brincar:
https://jsfiddle.net/orkLx6o8/
fonte