關於ie6/7下的z-index

  z-index這個屬性其實在挺多地方都會用到,在百度上搜索也有大量關於z-index的篇幅去闡述這個屬性,特別是在ie6下的z-index處理有更多的相關文章,本文就再也不圍繞z-index這一屬性的基礎展開敘述。這裏要討論的是最近在項目上對z-index在ie6下本身的一個認識,但願能幫助在z-index兼容上遇到問題的同行一個參考。  chrome

  首先是demo,點擊就能夠看到相關的demo了,這個demo就是一個分類導航的模塊,實現的功能是鼠標通過時當前標籤切換背景以及彈出相關層,代碼的結構好壞不作進一步探討。咱們繼續來看z-index這個東西。  firefox

  首先我是這樣處理,全部a標籤z-index都爲10,通過彈出層z-index爲20,當前a標籤z-index爲30,這樣在chrome、firefox、ie98都達到了預期的效果(設置z-index的過程固然要順便設置position這個東西,若是你有先看過網上的文章也會知道。)  it

  在首次完成後ie67並不兼容,也就是你如今所看到的demo(你能夠放到ie67裏看看),通過彈出層被其餘a標籤遮住了。按照平時的慣例依照直覺z-index:9999;position:relative;zoom:1各類各樣的屬性都用上了,這個層仍是死死的躺在其餘a標籤下面。  io

  沒辦法,看來亂碰撞不能解決問題,只能用理性去剝開ie6下z-index的沉淪緣由。據我所知(不知道何時記住的)ie6下的z-index比較是看他們的老大(父級)的比拼,也就是說誰的老大高級(z-index),每每它們也就跟着上位了。  基礎

  按着剛纔描述的邏輯去思考這個demo在ie67下的問題,目前全部a標籤都是同級(z-index:10;),也就是說全部堂口的老大都是10級的,他們的小弟確定不會大過他們,這樣想來難怪通過彈出層在其餘a下面了,鑑於這種狀況,我只能把當前a標籤的老大li再提升一個級別,使鼠標通過的當前a標籤以及彈出層總體提升一個檔次,這樣就不會給其餘a標籤遮住了。百度

  關於ie6/7下的z-index說到底其實就是拼爹,誰的爹大誰就在上面(大部分如此,不排除其餘狀況)。若是你沒有獲得答案我會在收到一條評論後公開~最後再補充一句,尼瑪的ie6!!搜索

相關文章
相關標籤/搜索