CSS Voglio che un div sia in cima a tutto


Risposte:


120

Affinché z-index funzioni, è necessario assegnare all'elemento position:absoluteuna position:relativeproprietà o . Una volta fatto ciò, i tuoi collegamenti funzioneranno correttamente, anche se potresti dover modificare un po 'il tuo CSS in seguito.


Volevo utilizzare uno schema fisso e quindi ho mantenuto la posizione fissa ma ho comunque impostato lo z-index su 1000 e ho ottenuto i risultati desiderati, copriva un div più in basso nella pagina mentre scorrevo, puoi spiegare perché è successo anche se Stavo usando una posizione statica?
Boo89100

37

Per z-index:1000avere un effetto è necessario uno schema di posizionamento non statico.

Aggiungi position:relative;a una regola selezionando l'elemento che desideri sia in primo piano


24

Sì, affinché z-index funzioni, è necessario assegnare all'elemento una proprietà position: absolute o position: relative.

Ma ... attenzione ai genitori!

Bisogna risalire i nodi degli elementi per verificare se a livello del genitore comune i primi discendenti hanno uno z-index definito.

Tutti gli altri discendenti non possono mai essere in primo piano se alla base c'è uno z-index definito inferiore.

In questo esempio di snippet, div1-2-1 ha uno z-index di 1000 ma è comunque sotto il div1-1-1 che ha uno z-index di 3.

Questo perché div1-1 ha uno z-index maggiore di div1-2.

inserisci qui la descrizione dell'immagine

.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>


Sei un salvavita!
Benjamin Karlog

16

Devi aggiungere position:relative;al menu. Z-index funziona solo quando si dispone di uno schema di posizionamento non statico.


9

z-indexla proprietà ti consente di assumere il controllo in primo piano. più grande è il numero impostato, più alto sarà il tuo elemento.

positionproprietà dovrebbe essere relativeperché la posizione di html-elementdovrebbe essere posizione rispetto ad altri controlli in tutte le dimensioni.

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

4

Immagino tu stia creando un popup con il codice della scuola WW3, giusto? controllalo css. quello .modal, ci sono già parole z-indexlì. basta cambiare da 1 a 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 */
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.