在CSS中,只能通過代碼改變層級,這個屬性就是z-index,要讓z-index起作用有個小小前提,就是元素的position屬性要是relative,absolute或是fixed。
第一種情況(z-index無論設(shè)置多高都不起作用情況):
這種情況發(fā)生的條件有三個:
1、父標(biāo)簽 position屬性為relative;
2、問題標(biāo)簽無position屬性(不包括static);
3、問題標(biāo)簽含有浮動(float)屬性。
eg:z-index層級不起作用,浮動會讓z-index失效,代碼如下:
<DIV style=”POSITION: relative; Z-INDEX: 9999″>
<IMG style=”FLOAT: left” src=img/131101/1A5494I0-0.jpg”>
</DIV>
解決辦法有三個(任一即可):
1、position:relative改為position:absolute;
2、浮動元素添加position屬性(如relative,absolute等);
3、去除浮動。
第二種情況
IE6下,層級的表現(xiàn)有時候不是看子標(biāo)簽的z-index多高,而要看整個DOM tree(節(jié)點樹)的第一個relative屬性的父標(biāo)簽的層級。
eg:IE7與IE6有著同樣的bug,原因很簡單,雖然圖片所在div當(dāng)前的老爸層級很高(1000),但是由于老爸的老爸不頂用,可憐了9999如此強勢的孩子沒有出頭之日??!,代碼如下:
<DIV style=”POSITION: relative”>
<DIV style=”POSITION: relative; Z-INDEX: 1000″>
<DIV style=”POSITION: absolute; Z-INDEX: 9999″> <IMG src=”img/1A3194V7-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=”img/1A3194V7-1.jpg”>
</DIV>
</DIV>
</DIV>