div層調整z-index屬性在IE中無效原因分析及解決方法
很久沒有寫前端代碼了,最近有個項目需要親自動手 , 但是在做的過程中 , 發現了一個很簡單卻又很多人應該碰到的問題 , 設置Z-INDEX屬性無效 。
在CSS中,只能通過代碼改變層級 , 這個屬性就是z-index,要讓z-index起作用有個小小前提 , 就是元素的position屬性要是relative,absolute或是fixed 。
1.第一種情況(z-index無論設置多高都不起作用情況):
這種情況發生的條件有三個:
1、父標簽 position屬性為relative;
2、問題標簽無position屬性(不包括static);
3、問題標簽含有浮動(float)屬性 。
eg:z-index層級不起作用 , 浮動會讓z-index失效
復制代碼代碼如下:
div style="position:relative; z-index:9999;"
img style="float:left;" src="https://www.questions.com.cn//imgup01.經驗啦網.net/經驗啦網/2018-03/29/10/15222906193093_0.jpg" /
/div
解決辦法有三個(任一即可):
1、position:relative改為position:absolute;
2、浮動元素添加position屬性(如relative,absolute等);
3、去除浮動 。
2.第二種情況
IE6下,層級的表現有時候不是看子標簽的z-index多高,而要看整個DOM tree(節點樹)的第一個relative屬性的父標簽的層級 。
eg:IE7與IE6有著同樣的bug,原因很簡單,雖然圖片所在div當前的老爸層級很高(1000) , 但是由于老爸的老爸不頂用,可憐了9999如此強勢的孩子沒有出頭之日?。?
復制代碼代碼如下:
div style="position:relative;"
div style="position:relative; z-index:1000;"
div style="position:absolute; z-index:9999;"
img src="https://www.questions.com.cn//imgup01.經驗啦網.net/經驗啦網/2018-03/29/10/15222906193093_1.jpg" /
/div
/div
/div
解決辦法: 在第一個relative屬性加上一個更高的層級(z-index:1)
復制代碼代碼如下:
div style="position:relative; z-index:1;"
div style="position:relative; z-index:1000;"
div style="position:absolute; z-index:9999;"
img src="https://www.questions.com.cn//imgup01.經驗啦網.net/經驗啦網/2018-03/29/10/15222906193093_1.jpg" /
/div
/div
/div
