2017-02-07 20 views
1

このexampleでは、Div#4、Div#5、およびDiv#6をDiv#1よりも高くする方法はありますか?私は、同じスタッキング・コンテキスト内の内のZインデックスのみが適用されると読んでいます。ここでは、Div 4,5、および6はDiv 3のスタッキングコンテキスト内にあります。どのようにして、より高いスタッキングコンテキストで要素をオーバーラップさせることができますか?

hereと表示されているように、メイン区域 leftプロパティを10%のように変更すると、子要素がbody要素によってオーバーラップしています。

main div { 
    background: black; 
    color: white; 
    width: 50%; 
    transform: translate(-50%, -50%); 
    position: absolute; 
    top: 50%; 
    left: 10%; 
    padding: 20px; 
    resize: both; 
    overflow: auto; 
} 

「上位の」スタッキングコンテキストで他の要素が重なるような方法はありますか?

+0

今追加した例は、 'z-index'やスタッキングコンテキストとは関係ありません。 'overflow:visible'に' main'の 'overflow:auto'を変更してください。 [更新されたペン](http://codepen.io/anon/pen/OWoWvW) –

答えて

0

static除き、z-index高いまたは#1年代及び任意position値と等しい#2を与えます。 (あなたが#2z-index5に変更すると、それは#2のすべての子どもたちが#1の上にレンダリングようになります。)z-indexstacking contexts here

より。また、スタック内の異なるz-index値を動的に循環させて何が起こるかを視覚化できるおもちゃ(スニペット)を作成しました。

#2の子どもたちが#1上にレンダリングすることのもう一つの方法は、#1position:staticを設定することです。この方法では、z-indexは適用されなくなります。

+0

私は質問を少し不明確にしたかもしれないと思います。私はDiv#2がDiv#1よりも上にあることをすでに認識しています。彼らは同じスタッキングコンテキストにいます。上記の例では、Div 4,5,6がDiv#1の上にレンダリングする方法はありますか?Div 1はDiv 4,5,6のような「より高い」スタッキングコンテキストにあります。 –

+0

「#1」と「#2」の両方が「z-index」の正の値を持ち、「#1」が「#2」より高く、両方が「static」以外の「position」の値を持つ場合、 **いいえ***。 '#2'の子どもたちはすべて、親の' 'Z-index''で' 'z-index''バブルにあります。 –

+0

だから、それをする汚い方法は '#1'に' position:static'をセットすることです - (答えを更新しました)。 –

関連する問題