Z-index em CSS
A lição de Position colocou as caixas. z-index responde à pergunta seguinte: quando duas caixas se sobrepõem, qual fica mais perto do leitor? Pense em folhas de papel numa secretária — as de cima cobrem as de baixo. Aprenda as regras do dia a dia antes de inventar números enormes.
Um kit de ferramentas z-index
📊 Z-index em resumo
| Ideia | Trabalho quotidiano |
|---|---|
z-index |
Define a ordem de pintura entre irmãos sobrepostos no mesmo stacking context |
| Primeiro posicionado | Costuma precisar de position diferente de static (ou certos filhos de layout moderno) |
| O maior ganha | Inteiros maiores pintam-se depois — aparecem por cima |
auto |
Predefinição — seguir a ordem do documento e as regras do contexto pai |
| Stacking context | Uma «gaiola» — os filhos comparam-se entre si, não com a página inteira |
| Escala calma | Prefira passos pequenos (1, 2, 10) e papéis nomeados em vez de corridas a 9999 |
z-index não move uma caixa para a esquerda nem para a direita. Só muda quem cobre quem quando as caixas já partilham o mesmo espaço no ecrã.
Levante um distintivo acima do cartão
Dê ao cartão um lar posicionado e depois eleve o distintivo com um z-index modesto. A ordem dos irmãos pode bastar, mas uma camada explícita torna a intenção legível.
.card {
position: relative;
}
.card__badge {
position: absolute;
top: 0.5rem;
right: 0.5rem;
z-index: 2;
padding: 0.2rem 0.45rem;
background: #0b5fff;
color: #fff;
}
Overlay acima da página
Modais e gavetas costumam ficar acima do conteúdo comum. Emparelhe um overlay posicionado com um número de camada claro — e mantenha o conteúdo da página mais baixo de propósito.
.page {
position: relative;
z-index: 1;
}
.modal {
position: fixed;
inset: 0;
z-index: 10;
background: rgba(0, 0, 0, 0.45);
}
Compare irmãos, não o mundo inteiro
Entre irmãos num contexto, ganha o z-index mais alto. Em empate, irmãos posteriores no DOM costumam pintar-se por cima. Comece as comparações dentro de um pai antes de perseguir guerras à escala da página.
.stack {
position: relative;
}
.stack .card-a {
position: absolute;
z-index: 1;
}
.stack .card-b {
position: absolute;
z-index: 2;
}
Stacking contexts enjaulam filhos
Um pai com o seu próprio stacking context (por exemplo posicionado + z-index) pode prender os filhos. Um filho com z-index: 999 não salta por cima de um irmão fora desse pai se o próprio pai estiver mais baixo. Corrija a camada do pai — não inflacione só o filho.
.panel {
position: relative;
z-index: 1;
}
.panel .popup {
position: absolute;
z-index: 999;
}
.toast {
position: fixed;
z-index: 5;
}
Um hábito z-index calmo
Nomeie papéis (--layer-badge, --layer-modal) ou use uma escala pequena. Evite 99999 salvo ao depurar. Lembre-se: colocação é position; empilhamento é z-index; o clear de float espera nas próximas lições.
:root {
--layer-base: 1;
--layer-badge: 2;
--layer-modal: 10;
}
.badge {
position: absolute;
z-index: var(--layer-badge);
}
.modal {
position: fixed;
z-index: var(--layer-modal);
}
Experimente você mesmo
- Coloque um distintivo absolute num cartão relative e defina
z-index: 2. - Construa um fundo/modal fixed com
z-index: 10acima do conteúdo da página em1. - Dê a dois irmãos absolute sobrepostos valores z-index diferentes e troque-os.
- Aninhe um filho com z-index alto dentro de um pai com z-index baixo — observe a gaiola.
- Reescreva um «9999» numa escala de custom properties nomeada.
Erros comuns
- Esperar que
z-indexnuma caixastaticsimples reordene tudo - Combater stacking contexts apenas elevando o filho aninhado
- Correr com
99999em vez de uma escala legível - Tratar esta lição como Position (colocação) ou Display (tipo de caixa)
- Usar z-index para inventar colunas de página em vez de ferramentas de layout
Resumo
z-indexcontrola quem pinta por cima quando as caixas se sobrepõem- Costuma precisar de position não static (ou casos especiais de layout)
- Valores mais altos ganham dentro do mesmo stacking context
- Contextos pai podem enjaular filhos — corrija o nível certo
- Prefira escalas pequenas nomeadas; deixe float para as próximas lições
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo