CSS Я хочу, щоб діва була понад усе


Відповіді:


120

Для того, щоб z-індекс працював, потрібно надати елементу a position:absoluteабо position:relativeвластивість. Після цього ваші посилання будуть функціонувати належним чином, хоча вам, можливо, доведеться трохи підправити CSS після цього.


Я хотів використовувати фіксовану схему, і тому я зберігав позицію як фіксовану, але все-таки встановив z-індекс до 1000 і отримав бажані результати, він накрив діву нижче на сторінці, коли я прокручував, чи можете ви пояснити, чому це сталося, хоча Я використовував статичну позицію?
Boo89100

37

Для z-index:1000досягнення ефекту потрібна нестатична схема позиціонування.

Додайте position:relative;до правила, вибираючи елемент, який ви хочете бути зверху


24

Так, для того, щоб z-індекс працював, вам потрібно надати елементу позицію: абсолютна або позиція: відносна властивість.

Але ... зверніть увагу на батьків!

Вам потрібно підійти до вузлів елементів, щоб перевірити, чи є на рівні спільного батьків перший нащадок визначений z-індекс.

Усі інші нащадки ніколи не можуть бути на передньому плані, якщо в основі є нижчий визначений z-індекс.

У цьому прикладі фрагменту div1-2-1 має z-індекс 1000, але, тим не менш, знаходиться під div1-1-1, який має z-індекс 3.

Це тому, що div1-1 має z-індекс, більший за div1-2.

введіть тут опис зображення

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


Ви рятувальник!
Бенджамін Карлог

16

Вам потрібно додати position:relative;в меню. Z-індекс працює лише тоді, коли у вас є нестатична схема позиціонування.


9

z-indexвластивість дозволяє вам взяти свій контроль спереду. чим більше число ви встановите верхній елемент, який ви отримаєте.

positionвластивість повинна бути, relativeоскільки позиція html-elementмає бути позицією відносно інших елементів управління у всіх вимірах.

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

4

Я припускаю, що ти робиш спливаюче вікно із кодом зі школи WW3, правда? перевірити його css. .модальний, там уже слово z-index. просто змініть від 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 */
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.