2017-09-13 1 views
1

親の下に来る子divを配置しようとしました。divの下にz-indexを使って要素を配置します

.box1{ 
 
    background-color: blue; 
 
    width: 500px; 
 
    height: 100px; 
 
    position: relative; 
 
    z-index: 3; 
 
} 
 

 
.box2{ 
 
    position: absolute; 
 
    background-color: red; 
 
    width: 200px; 
 
    height: 100px; 
 
    left: 30%; 
 
    top: 20px; 
 
    z-index: 2; 
 
} 
 

 
.box3{ 
 
    background-color: yellow; 
 
    width: 500px; 
 
    height: 100px; 
 
    z-index: 1; 
 
}
<div class="box1"> 
 
    <div class="box2"></div> 
 
</div> 
 
<div class="box3"></div>

私は青と黄色の下の上にあることを赤い四角形を配置します。私はそれらの3つにz-インデックスを入れました。ただし、動作しません。

あなたはこれについてどう思いますか?ありがとう!

更新:ボックスが正しい順序であるが、しかし、これらのボックス内の要素は今、クリックできません。あなたがここでエラーを見てみることができます

https://jsfiddle.net/p1xd6zah/

+3

青と黄色のボックスは異なる[スタッキングコンテクスト(https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context)を有します。青いボックスはzインデックスが3で、黄色はzインデックスが1なので、青いボックスとその子**は、内の子のzインデックスに関係なく、常に黄**より上になります(それを1000に設定すると、何も変更されません)。 2人の間で赤を挟む唯一の方法は、赤いボックスが他の2つのボックスの兄弟であることを確認することです。 – Terry

答えて

3

をあなたはz-indexをハック行うことができます。

  1. あなたはbox2z-index: -1を追加することができます。 (以下スタック)

  2. box3z-index: -2position: relativeを追加(今、このbox2後ろをスタック)

box1からz-indexを削除する - デモ下記参照:

.box1 { 
 
    background-color: blue; 
 
    width: 500px; 
 
    height: 100px; 
 
    position: relative; 
 
} 
 

 
.box2 { 
 
    position: absolute; 
 
    background-color: red; 
 
    width: 200px; 
 
    height: 100px; 
 
    left: 30%; 
 
    top: 20px; 
 
    z-index: -1; 
 
} 
 

 
.box3 { 
 
    background-color: yellow; 
 
    width: 500px; 
 
    height: 100px; 
 
    z-index: -2; 
 
    position: relative; 
 
}
<div class="box1"> 
 
    <div class="box2"></div> 
 
</div> 
 
<div class="box3"></div>

+1

ありがとうククズ、あなたのソリューションは素晴らしい作品! –

+0

こんにちは、まだボックス内の要素をクリックすることができないので別の問題があります。あなたはそれを見ていただけますか? https://jsfiddle.net/p1xd6zah/ –

+0

これは最高ですが、それは解決できるとは思わない*ハック*です... – kukkuz

関連する問題