IE瀏覽器對于css遮罩層的支持程度較低,需要特別注意。下面將具體介紹使用遮罩層時需要注意的事項。
/* IE6/7 hack */ *html #mask { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + "px"); left: 0; width: expression(document.documentElement.clientWidth + "px"); height: expression(document.documentElement.clientHeight + "px"); }
在IE6和IE7中,<div>
元素不會遮住下面的<select>
元素,而是會被它覆蓋。為了解決這個問題,可以使用上述代碼,通過設(shè)置position: absolute;
來將遮罩層放在<select>
元素的下面。
/* IE7/8 hack */ #mask { position: fixed; top: 0; left: 0; }
在IE7和IE8中,如果使用position: absolute;
來設(shè)置遮罩層的位置,會導(dǎo)致滾動頁面時遮罩層不隨之移動。此時應(yīng)該使用position: fixed;
來設(shè)置遮罩層的位置。
需要注意的是,在IE6中,使用position: fixed;
的元素會跟隨頁面滾動而滾動,這是因為fixed
在IE6中的實現(xiàn)方式跟其他瀏覽器不同。在此情況下,需要使用JavaScript來解決滾動問題。
// IE6 hack if (isIE6) { $(window).scroll(function() { $("#mask").css("top", $(window).scrollTop() + "px"); }); }
在IE6中,可以通過監(jiān)聽window.scroll
事件,并使用jQuery等庫來動態(tài)地改變遮罩層的位置。