IE6下z-index經(jīng)常不起作用bug的細(xì)分析
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
這是一個(gè)在鑫空間里轉(zhuǎn)過來一篇文章,作者寫的很詳細(xì),很給力,不感獨(dú)享。 一、匆匆?guī)н^的概念 在photoshop中,層的高低就是靠手動(dòng)調(diào)的,鼠標(biāo)拖拽,或是ctrl+]或是ctrl+shift+[快捷鍵改變層的次序。如下圖,鼠標(biāo)拖移改變層次序的過程中: 在CSS中,顯然,只能通過代碼改變層級,這個(gè)屬性就是z-index,要讓z-index起作用有個(gè)小小前提,就是元素的position屬性要是relative,absolute或是fixed。就像生孩子一樣,一個(gè)人不頂用,需要配合。下為z-index的業(yè)余示意圖: 按照正常的思維,z-index層級越高,內(nèi)容越應(yīng)該在上面顯示。在大部分的瀏覽器在大部分的情況下,確實(shí)如此,但是不絕對。尤其遇到IE6,這家伙,估計(jì)是后媽帶大的,從小營養(yǎng)不良,結(jié)果后來健康問題一堆又一堆。z-index的問題就是其中之一,而本文就是要講講這個(gè)IE6下z-index不起作用的問題。 二、關(guān)于效果截圖的些必要說明 以下所有結(jié)果截圖的大背景如下: 作用是為了讓層級關(guān)系一目了然。看:
2、頁面上做對比的是美女圖片,圖片在半透明黑色絕對定位層的上面還是下面很容易辨別,這樣,您就能夠?qū)ξ宜f的z-index不起作用有很直觀的認(rèn)識(shí)了。 三、IE6的抱怨:浮動(dòng)讓我沉淪 <div id=”blank”></div> 這一對比就知道問題了,可能有人會(huì)疑問,這會(huì)不會(huì)是IE6的relative自己感冒了,而不是浮動(dòng)(float)攜帶了“甲流病毒”。好,我現(xiàn)在去掉浮動(dòng),HTML代碼如下: 您可以狠狠地點(diǎn)擊這里:在線demo測試 我想,問題應(yīng)該都清楚了,至于原因,我起初以為是haslayout搞的鬼,后來,用zoom一測試,發(fā)現(xiàn)不是(IE7下無此bug也證明不是haslayout的原因),似乎就是這個(gè)float會(huì)讓z-index失效。由于將外部div的position:relative屬性改為absolute可以解決這一問題,我就懷疑是不是浮動(dòng)讓relative發(fā)生了些變化,float與relative在水平定位上可以說是近親,會(huì)不會(huì)是因?yàn)檫@兩者攪和在一起所以什么“畸形”“體弱多病”就出現(xiàn)了。這僅是我的猜測而已,真正的原因還是去問IE6的后媽吧。 解決方法,解決方法有三,1、position:relative改為position:absolute;2、去除浮動(dòng);3、浮動(dòng)元素添加position屬性(如relative,absolute等)。 四、固執(zhí)的IE6:它只認(rèn)第一個(gè)爸爸 有一定經(jīng)驗(yàn)的人可能都知道上面的事實(shí)。但是,相信這里面很多人不知道IE6下,決定層級高低的不是當(dāng)前的父標(biāo)簽,而是整個(gè)DOM tree(節(jié)點(diǎn)樹)的第一個(gè)relative屬性的父標(biāo)簽。有時(shí)平時(shí)我們多處理一個(gè)父標(biāo)簽,z-index層級多而復(fù)雜的情況不多見,所以難免會(huì)有認(rèn)識(shí)上的小小偏差。 好,下面展示這個(gè)bug。 條件很簡單,只要絕對定位的第一個(gè)元素的第一個(gè)爸爸,或者說是最老的那個(gè)爸爸級別的人的relative屬性小于黑色半透明層的z-index層級。例如下面的HTML代碼: 再看看以Firefox為代表的其他童鞋: IE7與IE6有著同樣的bug,原因很簡單,雖然圖片所在div當(dāng)前的老爸層級很高(1000),但是由于老爸的老爸不頂用,可憐了9999如此強(qiáng)勢的孩子沒有出頭之日啊! 知道原因解決就很輕松了,給第一任老爸添加z-index后的HTML代碼如下: 您可以狠狠地點(diǎn)擊這里:改變父標(biāo)簽層級在線demo測試 五、必要的結(jié)語 總之,慢慢來,慢慢積累,慢慢研究,一定會(huì)一步一步揭開z-index的本質(zhì)面紗的。 原創(chuàng)地址:http://www.zhangxinxu.com/wordpress/?p=471 該文章在 2010/12/17 22:09:18 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |