CSS Saya ingin div berada di atas segalanya

Jawaban:

120

Agar indeks-z bekerja, Anda harus memberi elemen a position:absoluteatau position:relativeproperti. Setelah Anda melakukannya, tautan Anda akan berfungsi dengan baik, meskipun Anda mungkin harus sedikit mengubah CSS Anda setelahnya.

Skylar Anderson
sumber
Saya ingin menggunakan skema tetap dan jadi saya mempertahankan posisi tetap tetapi tetap mengatur z-index ke 1000 dan mendapatkan hasil yang diinginkan, itu menutupi div yang lebih rendah pada halaman saat saya menggulir, dapatkah Anda menjelaskan mengapa itu terjadi meskipun Saya menggunakan posisi statis?
Boo89100
37

Untuk z-index:1000mendapatkan efek, Anda memerlukan skema pemosisian non-statis.

Tambahkan position:relative;ke aturan memilih elemen yang Anda inginkan di atas

Richard JP Le Guen
sumber
24

Ya, agar indeks-z berfungsi, Anda harus memberi elemen properti position: absolute atau position: relative.

Tapi ... perhatikan orang tua!

Anda harus naik ke node elemen untuk memeriksa apakah pada tingkat orang tua bersama, keturunan pertama memiliki indeks-z yang ditentukan.

Semua turunan lainnya tidak akan pernah bisa berada di latar depan jika di pangkalan ada indeks-z pasti yang lebih rendah.

Dalam contoh cuplikan ini, div1-2-1 memiliki indeks-z 1000 tetapi berada di bawah div1-1-1 yang memiliki indeks-z 3.

Ini karena div1-1 memiliki indeks-z lebih besar dari div1-2.

masukkan deskripsi gambar di sini

.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
sumber
Anda adalah penyelamat!
Benjamin Karlog
16

Anda perlu menambahkan position:relative;ke menu. Z-index hanya berfungsi jika Anda memiliki skema pemosisian non-statis.

Bradshaw kaya
sumber
9

z-indexproperti memungkinkan Anda untuk mengambil kendali di depan. semakin besar angka yang Anda atur semakin tinggi elemen yang Anda dapatkan.

positionproperti harus relativekarena posisi html-elementharus posisi relatif terhadap kontrol lain di semua dimensi.

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

Saya akan berasumsi Anda membuat popup dengan kode dari sekolah WW3, benar? periksa css. yang .modal, sudah z-indexada kabar di sana. ubah saja dari 1 menjadi 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
sumber