CSS Je veux qu'un div soit au top de tout

Réponses:

120

Pour que z-index fonctionne, vous devez donner à l'élément a position:absoluteou une position:relativepropriété. Une fois que vous faites cela, vos liens fonctionneront correctement, même si vous devrez peut-être modifier un peu votre CSS par la suite.

Skylar Anderson
la source
Je voulais utiliser un schéma fixe et j'ai donc gardé la position fixe tout en définissant le z-index sur 1000 et j'ai obtenu les résultats souhaités, il couvrait un div plus bas sur la page lorsque je faisais défiler, pouvez-vous expliquer pourquoi cela s'est produit même si J'utilisais une position statique?
Boo89100
37

Pour z-index:1000avoir un effet, vous avez besoin d'un schéma de positionnement non statique.

Ajouter position:relative;à une règle en sélectionnant l'élément que vous souhaitez placer en haut

Richard JP Le Guen
la source
24

Oui, pour que z-index fonctionne, vous devrez donner à l'élément une propriété position: absolue ou position: relative.

Mais ... faites attention aux parents!

Il faut remonter les nœuds des éléments pour vérifier si au niveau du parent commun les premiers descendants ont un z-index défini.

Tous les autres descendants ne peuvent jamais être au premier plan si à la base il y a un z-index défini inférieur.

Dans cet exemple d'extrait de code, div1-2-1 a un z-index de 1000 mais est néanmoins sous le div1-1-1 qui a un z-index de 3.

Cela est dû au fait que div1-1 a un z-index supérieur à div1-2.

entrez la description de l'image ici

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

A. Morel
la source
Tu es un sauveur!
Benjamin Karlog
16

Vous devez ajouter position:relative;au menu. Z-index ne fonctionne que lorsque vous avez un schéma de positionnement non statique.

Rich Bradshaw
la source
9

z-indexpropriété vous permet de prendre votre contrôle à l'avant. le plus grand nombre que vous définissez le supérieur de votre élément que vous obtenez.

positionla propriété doit être relativeparce que la position de html-elementdoit être la position relative par rapport aux autres contrôles dans toutes les dimensions.

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

Je vais supposer que vous créez une fenêtre contextuelle avec le code de l'école WW3, n'est-ce pas? vérifiez-le css. le .modal, il y a déjà des mots z-indexlà-bas. changez simplement de 1 à 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 */
}
KhmerNews Tech
la source