CSS divをすべての上に置きたい


回答:


120

z-indexが機能するためには、要素にa position:absoluteまたはposition:relativeプロパティを指定する必要があります。これを実行すると、リンクは適切に機能しますが、後でCSSを少し調整する必要がある場合があります。


私は固定スキームを使用したかったので、位置を固定したまま、Zインデックスを1000に設定して希望の結果を得ました。スクロールするとページの下のdivをカバーしましたが、それが発生した理由を説明できますか静止位置を使用していましたか?
Boo89100

37

z-index:1000効果的にするには、非静的な配置スキームが必要です。

position:relative;最上位にしたい要素を選択するルールに追加します


24

はい、z-indexを機能させるには、要素にposition:absoluteまたはposition:relativeプロパティを指定する必要があります。

しかし...両親に注意してください!

要素のノードを上に移動して、共通の親のレベルで最初の子孫にZインデックスが定義されているかどうかを確認する必要があります。

他のすべての子孫は、ベースに明確なZインデックスがある場合、フォアグラウンドになることはありません。

このスニペットの例では、div1-2-1のz-indexは1000ですが、それでも、z-indexが3のdiv1-1-1の下にあります。

これは、div1-1のdivインデックスが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>


あなたは命の恩人です!
Benjamin Karlog

16

position:relative;メニューに追加する必要があります。Z-indexは、静的でない配置スキームがある場合にのみ機能します。


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で確認してください。.modalの場合、すでに単語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 */
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.