2010-11-25 3 views
2

私は3つの要素を積み重ねています。今では、最も内側の要素を親の後ろに置いて、祖父母の前に置いておきたいと思います。私はz-indexの設定にさまざまなバリエーションを試しましたが、成功はありませんでした。要素はどのようにして親の後ろに位置することができますが、祖父母の前にいますか?

Zインデックスの私の理解として働くshoulコードは次のとおりです。それがないことを除いて

<div style="width: 400px; height: 400px; background-color: purple; position: relative; z-index: 1;"> 
    <div style="width: 200px; height: 200px; background-color: blue; position: relative; z-index: 1;"> 
     <div style="width: 100px; height: 100px; background-color: green; position: relative; z-index: -1;"></div> 
    </div> 
</div> 

+0

はあなたがトランプを望んでいる@do効果?? – kobe

+0

フェリックス、私は質問を編集しました。 –

答えて

3

それは動作します

CSS

.div1{ 
    width: 400px; 
    height: 400px; 
    background-color: purple; 
    position: relative; 
    z-index: 1; 
} 

.div2{ 
    width: 200px; 
    height: 200px; 
    background-color: blue; 
    z-index: 1; 
} 

.div3{ 
    width: 100px; 
    height: 100px; 
    background-color: green; 
    position: relative; 
    z-index: -1; 
    left:150px; 
} 

HTML

<div class='div1'> 
    <div class='div2'> 
     <div class='div3'></div> 
    </div> 
</div> 

例:http://jsfiddle.net/MFULL/90/

+2

+1。インラインスタイルなしではるかに良いでしょう... –

+0

この設定でdiv1の後ろにdiv3を表示させる方法がありますか、またはdivをいくつか追加する必要がありますか? – user2236165

+0

@ user2236165 'position:relative'を' div1'から削除すると、積み重ねの順序がDOM構造の上位に定義されるため、動作します。 (http://jsfiddle.net/gaby/MFULL/97/を参照) –

0

要素がページフローの一部である限り、親を子の前に置くことはできません。

このように積み重ねることができるようにするには、ページフローから要素を取り除くために絶対配置を使用する必要があります。

+1

Guffa:申し訳ありませんが、サンプルを投稿してください。もちろんそれらは位置づけられている。上記を参照。 –

2

あなたのような意味場合:

<div id="a"> 
    <div id="b"> 
     <div id="c"> 
     </div> 
    </div> 
</div> 

その後、あなたは次のメソッドを使用することができます。

デモ:http://jsfiddle.net/ZmvKX/

#a { 
    width: 300px; height: 300px; border: 1px solid black; background-color: #000; 
    z-index: -1; position: absolute; 
} 

#b { 
    width: 200px; height: 200px; border: 1px solid black; padding: 10px 10px; top: 100px; left: 100px; background-color: #ff0; 
    position: relative; 
} 

#c { 
    width: 100px; height: 100px; border: 1px solid black; padding: 10px 10px; top: -50px; left: -50px; background-color: #fff; 
    position: absolute; z-index: -2; 
} 

トリックはスタッキングコンテキストが権利を取得することです。あなたは第二のdivからの相対位置を削除した場合

関連する問題