2017-07-28 1 views
1

のz-indexが子のzインデックスにどのように影響するかを親

#parent { 
 
    position: relative; 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
    z-index: 1; 
 
} 
 

 
#child { 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 50px; 
 
    z-index: -1; 
 
    transform: translateX(20px); 
 
}
<div id="parent"> 
 
    <p> 
 
    qqq 
 
    </p> 
 
    <div id="child" > 
 
    test 
 
    </div> 
 
</div>

私は1に親のzインデックスを設定しない場合、子のZインデックスは、親の下でそれをできるようになります。しかし、親のz-インデックスを1(または0より大きい任意の数)に設定すると、子供のZ-インデックスは機能しません!

誰でもこれが起こったのですか?

+0

どのようにそれが動作しないのでしょうか?それは親の後ろに行く? – Sina

+0

あなたは何を期待していますか、何を達成しようとしていますか? – caramba

+1

親にZ-インデックス値を与えると、新しい積み重ね順序が開始されます。親にz-index値を与えると、その子のすべてのz-index値は親のz-index値に相対的になります。 –

答えて

2

、すべての背景色は、テキストの後ろになります。 z-indexのデフォルトはautoで、スタックの順序をその親に等しく設定します。ただし、子にz-indexを使用すると、自然なスタック順序から移動し、バックグラウンドの背後に配置されます。親をZインデックスに変更すると、スタックに再び参加し、背景色がテキストの後ろに再び表示されます。

親と子の両方がAUTOに設定されています。両方とも同じスタックにあります。 z-index -1に設定

#parent { 
 
    position: absolute; 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
} 
 

 
#child { 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 50px; 
 
    transform: translateX(20px); 
 
}
<div id="parent"> 
 
    <div> 
 
    qqq 
 
    </div> 
 
    <div id="child" > 
 
    test 
 
    </div> 
 
</div>

子は、今では

#parent { 
 
    position: absolute; 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
} 
 

 
#child { 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 50px; 
 
    z-index: -1; 
 
    transform: translateX(20px); 
 
}
<div id="parent"> 
 
    <div> 
 
    qqq 
 
    </div> 
 
    <div id="child" > 
 
    test 
 
    </div> 
 
</div>

子供がz-index 1に設定z-index -1と親に設定し、親と同じスタックではありません両方のことをsaにする私は背景色が両方の要素の後ろに置かれるようにスタックします。

#parent { 
 
    position: absolute; 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
    z-index: 1; 
 
} 
 

 
#child { 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 50px; 
 
    z-index: -1; 
 
    transform: translateX(20px); 
 
}
<div id="parent"> 
 
    <div> 
 
    qqq 
 
    </div> 
 
    <div id="child" > 
 
    test 
 
    </div> 
 
</div>

+0

お返事ありがとうございます! – WendellLiu

1

子供にz-index: -1;を設定すると、もちろんその子供は親の後ろにいるでしょう。子からz-index: -1;を削除する場合は、親からz-index: 1;を削除することもできます。デフォルトでは

#parent { 
 
    position: relative; 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
    /*z-index: 1;*/ 
 
} 
 

 
#child { 
 
    background: green; 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 50px; 
 
    /*z-index: -1;*/ 
 
    transform: translateX(20px); 
 
}
<div id="parent"> 
 
    <p> 
 
    qqq 
 
    </p> 
 
    <div id="child" > 
 
    test 
 
    </div> 
 
</div>

+0

彼はそれを修正する方法を尋ねていない、彼はなぜ起きているのかを質問している –

+0

@ JoshuaDuxbury正しい。それは私が「z-index:-1;」を子供に設定した場合、子どもが親の後ろにいることを意味します。 – caramba

関連する問題