2012-10-15 44 views
0

這是我code有沒有辦法「強制」兒童z指數?

HTML

<div class="item"> 
    &nbsp; 
</div> 

<div class="item"> 
    <div class="item-abs"> 
     &nbsp; 
    </div> 
</div> 

<div class="item"> 
    &nbsp; 
</div>​ 

CSS

.item 
{ 
    position:relative; 
    z-index:5; 
    float:left; 
    background-color:red; 
    width:100px; 
    height:100px; 
    margin:10px; 
} 

.item-abs 
{ 
    position:absolute; 
    top:0px; 
    left:40px; 
    z-index:500; 
    background-color:blue; 
    width:100px; 
    height:100px;  
} 
​ 

,你可以看到,如果孩子已經得到的z-index的500,是下下父母。有沒有辦法強制兒童Z指數?騎着父親的堆棧?或者這種情況不能完成?

我不能改變父母的z-index,我想這樣做沒有設置一個適當的下降的z-index與JavaScript ...

+0

沒有,因爲每個家長創建一個新的z-index的背景下,你不能做到這一點。 –

+0

@mdk:你有參考如何工作?我認爲一個更高的z-index意味着它將位於頂部...... – Chris

+0

更高的z-index並不意味着它始終位於最上面,它取決於堆疊上下文。請閱讀https://developer.mozilla.org/en-US/docs/CSS/Understanding_z-index/The_stacking_context – Venu

回答

2

當然,你甚至不需要設置孩子的z-index。

只需將最後一個div的z索引設置爲較低的z索引,即可完成。

Example

這樣做的原因行爲如下:如果父母有相同的z-index,一來最後在DOM「贏」。所以從技術上來說,對於父母而言,絕對孩子的簡單z-index:1就足夠了。另一種可能性是設置的z-index只是孩子:

Example

+0

是的,好吧,但必須是「動態」:如果絕對是第一次,它再次失敗:) http://jsfiddle.net/BhQNr/7/ – markzzz

+0

爲什麼你設置父母的z-index?嘗試我建議的第二種方式。 – Christoph

+0

有一個動機!我用一些插件拖動div,它們必須有z-index ... – markzzz

0

下小提琴似乎做你想要什麼(我相信):

http://jsfiddle.net/BhQNr/3/

這是通過去除父元素的定位,使相對孩子完成(它的工作原理與絕對的,而左側和頂部的值是使用絕對時),比近。

+0

Ehm,這改變了頁面的整體結構!不能這樣做:) – markzzz

+0

那麼它在小提琴中做你想要的。 ;-)(在FF中至少) – Chris

相關問題