2012-10-26 120 views
16

我使用jQuery製作div apear,當我點擊一個按鈕時 - >背景應該得到0.8的不透明度,出現的div將允許用戶讓他登錄 - 當我不使用z-索引,但我有4個div(header,content,footer和帶登錄表單的div)標題必須包含z-index:3和content z-index:2 - 否則陰影將無法按預期工作。z-index不起作用?

使用jQuery我在body標籤後面添加了一個div,其中包含完整的一面 - 所以我可以設置不透明度,但是接下來我必須爲form-div設置高於div的z-index不透明 - 但它不起作用。形式div的z-index是999,另一個div有5

任何解決方法或z-index的東西?

+2

我們需要查看HTML和CSS以給出明確的答案 – Dancrumb

+0

z-index比較棘手。您必須確保您啓用元素以「使用」z-index。 'position:relative;'對於你想要保留在文檔流中的項目和'position:absolute;'對於文檔流以外的項目。此外,IE7有一個z-索引「bug」,它以它的父級索引爲基礎,並將父級z-index與其在DOM中的兄弟進行比較。這可能會導致頭痛。 – jmbertucci

+0

[爲什麼z-index不起作用?](http://stackoverflow.com/q/9191803/1529630)可能重複,但無法知道,因爲沒有代碼。 – Oriol

回答

39

更改元素的位置。

position: relative; 
+1

這裏的文檔:http://www.w3schools.com/cssref/pr_pos_z-index.asp – SamHuckaby

+0

已經嘗試過:-S - 不起作用 –

+8

@SamHuckaby:這不是「the」文檔。 W3Schools不是W3C。真正的文檔在這裏:http://www.w3.org/TR/CSS21/visuren.html#z-index – BoltClock

2

您需要確保position在您的CSS中定義。 如果你想z-index被實現爲HTML的常規元素,然後將position:relative添加到你的元素。

4

老問題,但我會發帖無論如何,如果別人來尋找解決方案。

z-index並不像聽起來那麼簡單。在元素1 = 999和元素2 = 1上創建z索引並不總是意味着元素1會在前面。

我曾經有過類似的情況,當我需要元素在前面時,我用jQuery更改了z-index,並且它工作正常。這意味着z-index關心的是你給它那個指數的時間。如果你想給它一個999的值,那麼在你希望它在前面的時候給它。 這可能會使其保持在最佳狀態,但其他規則可能仍然適用,即:堆疊順序。這是一個相當大的話題,所以我只是在這裏指出: http://philipwalton.com/articles/what-no-one-told-you-about-z-index/

4

你需要做一些關於父元素。

溢出:可見;

這會對你有好處。

+0

不知道爲什麼這個答案只有一票(我的)。這只是救了我一個**! –

+0

現在我想到了,我意識到我的問題根本不是z-index。該元素被簡單切割,因爲它正在從其父項流出(使用'position:absolute')。 –

+0

@GiladBarner很高興能幫到你:) – steveluoxin