2012-09-26 32 views
4

我附上了兩張圖片,第一張顯示了我正在使用的webapp的「桌面」,一些圖標顯示爲由<div/>組成的開放對話框,其中包含<iframe/> ,但在正常的PC上,它都能正常工作,在iPad上,似乎有一些元素的Z-index存在問題,如第二張圖所示。z-index在iPad和Google Chrome上未正確呈現22

紅色小輪與數內的定義如下:

.countComunicazioni { 
    position: relative; 
    background: url(/images/admin/menu_sgs/counter.gif) no-repeat center center; 
    height: 35px; 
    width: 35px; 
    color: #FFF; 
    top: -105px; 
    left: 120px; 
    z-index: 0; 
    font-weight: bold; 
    display: none; 
} 
.countComunicazioni p { 
    margin-top: -5px; 
    padding-top: 10px; 
} 

標記是一個<div class="countComunicazioni"/>標籤和<p/>標籤內。

我也注意到,現在的問題也出現在谷歌瀏覽器V22,在紅色圓圈中的數字總是在最前面,即使它們具有的z-index == 0和對話具有的z-index> 1000

根據這個錯誤報告(http://code.google.com/p/chromium/issues/detail?id=144518),這個改變似乎是有意的,即使我敢打賭它會打破許多佈局,不僅僅是我們的。

此問題在以前版本的Google Chrome瀏覽器中不存在,也不存在於Firefox V15或Internet Explorer V9中,其中一切都呈現問題。

這個問題怎麼解決?我不是CSS專家,所以我必須承認,到目前爲止,我已經嘗試了很少,如果有的話......還有,誰在這裏「正確」?我們的標記不正確,還是問題出在谷歌瀏覽器新的呈現策略?

web-app desktop

dialog opened

編輯

看來我已經能夠解決這兩個圖片顯示的問題:從我的web應用程序生成的所有對話框都放在裏面<div/>position:fixed放置在身體的最頂部,現在我試圖將div移動到頁面的最底部,並且佈局現在看起來正確。

還有一個問題:打開模式對話框時,應該在對話框和下面的內容之間創建的不透明層實際上在它上面創建,請參閱新的屏幕截圖。

modal dialog with wrong opaque layer

這怎麼可能解決?它是否需要修改我們的JavaScript或是jQuery UI本身的問題?

回答

5

剛發現我自己,鉻22 +處理z-index的方式已被改變。 這裏看看這個真棒解釋,我沒有寫在這裏...

http://updates.html5rocks.com/2012/09/Stacking-Changes-Coming-to-position-fixed-elements

基本上我明白它的方式是具有

position: fixed 

現在元素與自己被計數z-index圖層,因此您必須根據需要調整頁面。

希望有幫助!

+1

但爲什麼這個突破性的改變?我真的不明白,它是**這麼多**令人沮喪... –

+0

不知道哥們,但我猜瀏覽器必須繼續與時並進 – dawogfather

+0

我同意你,但我認爲他們不應該使這樣突然改正,因爲它會破壞後向兼容性。 –