在html制作和很多图片特效及菜单特效过程中,我们会经常用到z-index属性,但我们经常会遇到这种情况,在Firefox浏览器和Chrome浏览器下都是正常的,但是在360SE或是IE7下都不是我们想要的效果,多次碰到过这个问题,在不断修改的过程中发现引起不兼容的主要原因在于CSS中z-index这个属性存在不兼容的问题。
我们都知道z-index属性值越大,对应的div也会越靠上(即能遮住比其z-index值小的层)。但有时候z-index 设置了很高的值如:z-index:9999; 但是最后在 IE7中却达不到我们想要的效果,设置了z-index还是被遮盖了。这其实是IE7的渲染DOM的问题,当一个父容器被定位(如position:relative)的时候,子元素的z-index属性会被重置。
解决方法:在父容器中也加上z-index值。同时z-index属性必须与position配合使用才会生效。
<div style=”position:relative;z-index:9;”>
<div style=”position:absolute;z-index:11;”>要在最上层显示的内容,最上层显示的内容</div>
</div>
<div style=”position:relative;z-index:3″>
test
test
</div>
倘若将第一个div的z-index设置为-1,则无论第二个div的z-index为多少,多会被下面的div遮住。
相反,倘若下层div的z-index也设置成9,ie7在解释时,会按照”position:relative”的层的顺序,自动叠加,即实际值是12.
没有加position属性时,所有值继承自父级。