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>
元素,而是会被它覆盖。为了解决这个问题,可以使用上述代码,通过设置position: absolute;
来将遮罩层放在<select>
元素的下面。
/* IE7/8 hack */ #mask { position: fixed; top: 0; left: 0; }
在IE7和IE8中,如果使用position: absolute;
来设置遮罩层的位置,会导致滚动页面时遮罩层不随之移动。此时应该使用position: fixed;
来设置遮罩层的位置。
需要注意的是,在IE6中,使用position: fixed;
的元素会跟随页面滚动而滚动,这是因为fixed
在IE6中的实现方式跟其他浏览器不同。在此情况下,需要使用JavaScript来解决滚动问题。
// IE6 hack if (isIE6) { $(window).scroll(function() { $("#mask").css("top", $(window).scrollTop() + "px"); }); }
在IE6中,可以通过监听window.scroll
事件,并使用jQuery等库来动态地改变遮罩层的位置。