2017-09-14 23 views
1

私はドロップダウンメニューを実装しようとしました。これは別のdivで再利用できます。埋め込み絶対divとzインデックス

私はドロップダウンメニューにposition:relativeを使用しています(それはそれを開いているボタンの下に表示されます)。問題は、ドロップダウンメニューが親divだけをオーバーレイしていることです。私が設定したZ-インデックスに関係なく、ドロップダウンメニューが別の(親ではない)divと重なっていると、アンダーレイになります。

絶対配置されたアイテムを他のものよりも優先するソリューションはありますか?

(私は他の理由のためのzインデックスを使用しなければならない、と私はメニュー表示にすることはできません。相対)

.back, .front, .back2{ 
 
    position: absolute; 
 
    width: 100px; 
 
    color: white; 
 
    line-height: 100px; 
 
    text-align: center; 
 
} 
 

 
.back { 
 
    position:relative; 
 
    z-index: 10; 
 
    top: 20px; 
 
    left: 20px; 
 
    background: red; 
 
} 
 
.back2 { 
 
    position:relative; 
 
    z-index: 10; 
 
    top: 50px; 
 
    left: 20px; 
 
    background: orange; 
 
} 
 

 
.front { 
 
    position: absolute; 
 
    z-index:20; 
 
    top: 60px; 
 
    left: 60px; 
 
    background: green; 
 
}
<div class="back"> 
 
    <span >Parent div1</span> 
 
    <div class="front"> 
 
    <span >dropdown</span> 
 
    </div> 
 
</div> 
 

 
<div class="back2"> 
 
    <span >someOtherDiv</span> 
 
</div>

答えて

3

親のzインデックスを与える必要はありませんがdiv。あなたはparent divz-index大きなを更新することができ、その場合にはparent divからz-indexを削除することはできませんあなたの質問を1として

.back, .front, .back2{ 
 
    position: absolute; 
 
    width: 100px; 
 
    color: white; 
 
    line-height: 100px; 
 
    text-align: center; 
 
} 
 

 
.back { 
 
    position:relative; 
 
    top: 20px; 
 
    left: 20px; 
 
    background: red; 
 
} 
 
.back2 { 
 
    position:relative; 
 
    top: 50px; 
 
    left: 20px; 
 
    background: orange; 
 
} 
 

 
.front { 
 
    position: absolute; 
 
    z-index:20; 
 
    top: 60px; 
 
    left: 60px; 
 
    background: green; 
 
}
<div class="back"> 
 
    <span >Parent div1</span> 
 
    <div class="front"> 
 
    <span >dropdown</span> 
 
    </div> 
 
</div> 
 

 
<div class="back2"> 
 
    <span >someOtherDiv</span> 
 
</div>

以下の更新スニペットを確認してください。その他の理由(この問題に関連していない)のための チェック以下のスニペットを更新...

.back, .front, .back2{ 
 
    position: absolute; 
 
    width: 100px; 
 
    color: white; 
 
    line-height: 100px; 
 
    text-align: center; 
 
} 
 

 
.back { 
 
    position:relative; 
 
    top: 20px; 
 
    left: 20px; 
 
    background: red; 
 
    z-index:10; 
 
} 
 
.back2 { 
 
    position:relative; 
 
    top: 50px; 
 
    left: 20px; 
 
    background: orange; 
 
    z-index:9; 
 
} 
 

 
.front { 
 
    position: absolute; 
 
    z-index:20; 
 
    top: 60px; 
 
    left: 60px; 
 
    background: green; 
 
}
<div class="back"> 
 
    <span >Parent div1</span> 
 
    <div class="front"> 
 
    <span >dropdown</span> 
 
    </div> 
 
</div> 
 

 
<div class="back2"> 
 
    <span >someOtherDiv</span> 
 
</div>

+0

、私は親divの上のz-indexプロパティを使用する必要があります。それを削除せずにこの問題を解決する方法はありますか? – ForestG

+0

@ForestG check updated答え –

+0

ありがとう、それは私が探していた解決策です。 最初の質問で指摘したように、Z-インデックスがなければ問題はありません...私はプロジェクトからZ-インデックスソリューションを削除することを検討しています。広く使用するための良い習慣です。 – ForestG

関連する問題