CSS Eu quero que um div esteja por dentro de tudo


Respostas:


120

Para que o Z-index funcione, você precisará fornecer ao elemento a position:absoluteou uma position:relativepropriedade. Depois de fazer isso, seus links funcionarão corretamente, embora você possa ter que ajustar seu CSS um pouco depois.


Eu queria usar um esquema fixo e por isso mantive a posição fixa, mas ainda configurei o z-index para 1000 e obtive os resultados desejados, ele cobriu uma div inferior na página conforme eu rolei, você pode explicar por que isso aconteceu, embora Eu estava usando uma posição estática?
— Boo89100

37

Para z-index:1000ter um efeito, você precisa de um esquema de posicionamento não estático.

Adicione position:relative;a uma regra selecionando o elemento que você deseja que esteja no topo


24

Sim, para que o Z-index funcione, você precisará fornecer ao elemento uma propriedade position: absolute ou position: relative.

Mas ... preste atenção aos pais!

Você tem que subir os nós dos elementos para verificar se no nível do pai comum os primeiros descendentes têm um índice z definido.

Todos os outros descendentes nunca podem estar em primeiro plano se na base houver um índice z definido inferior.

Neste exemplo de snippet, div1-2-1 tem um z-index de 1000, mas está sob o div1-1-1 que tem um z-index de 3.

Isso ocorre porque div1-1 tem um índice z maior que div1-2.

insira a descrição da imagem aqui

.div {
  
}

#div1 {
  z-index: 1;
  position: absolute;
  width: 500px;
  height: 300px;
  border: 1px solid black;
}

#div1-1 {
  z-index: 2;
  position: absolute;
  left: 230px;
  width: 200px;
  height: 200px;
  top: 31px;
  background-color: indianred;
}

#div1-1-1 {
  z-index: 3;
  position: absolute;
  top: 50px;
  width: 100px;
  height: 100px;
  background-color: burlywood;
}

#div1-2 {
  z-index: 1;
  position: absolute;
  width: 200px;
  height: 200px;
  left: 80px;
  top: 5px;
  background-color: red;
}

#div1-2-1 {
  z-index: 1000;
  position: absolute;
  left: 70px;
  width: 120px;
  height: 100px;
  top: 10px;
  color: red;
  background-color: lightyellow;
}

.blink {
  animation: blinker 1s linear infinite;
}

@keyframes blinker {
  50% {
    opacity: 0;
  }
}

.rotate {
  writing-mode: vertical-rl;
  padding-left: 50px;
  font-weight: bold;
  font-size: 20px;
}
<div class="div" id="div1">div1</br>z-index: 1
  <div class="div" id="div1-1">div1-1</br>z-index: 2
    <div class="div" id="div1-1-1">div1-1-1</br>z-index: 3</div>
  </div>
  
  <div class="div" id="div1-2">div1-2</br>z-index: 1</br><span class='rotate blink'><=</span>
    <div class="div" id="div1-2-1"><span class='blink'>z-index: 1000!!</span></br>div1-2-1</br><span class='blink'> because =></br>(same</br>   parent)</span></div>
  </div>
</div>


Você é um salva-vidas!
— Benjamin Karlog de

16

Você precisa adicionar position:relative;ao menu. O Z-index só funciona quando você tem um esquema de posicionamento não estático.


9

z-indexpropriedade permite que você assuma o controle na frente. quanto maior o número que você definir, mais alto será o seu elemento.

positionpropriedade deve ser relativeporque a posição de html-elementdeve ser relativamente contra outros controles em todas as dimensões.

element.style {
   position:relative;
   z-index:1000; //change your number as per elements lies on your page.
}

4

Vou presumir que você está fazendo um pop-up com o código da escola WW3, correto? verifique css. o .modal, já tem boato z-indexaí. apenas mude de 1 para 100.

.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.