首页 > 代码库 > HTML兼容性 不声明doctype,IE9标准模式下position:fixed定位失败,导致遮罩层(Mask Layer)显示在页面最下方,FF和Chrome正常

HTML兼容性 不声明doctype,IE9标准模式下position:fixed定位失败,导致遮罩层(Mask Layer)显示在页面最下方,FF和Chrome正常

问题描述:ie9标准模式下,老系统中的页面很少有写doctype的,但是不写这个声明,浏览器对于文档的解析机制就不一样了,特别是对于table和样式中的width, height 为100%布局,以及高度自适应的实现方案有影响,不了解的可以自行百度先,那么不写的话,又想加1个遮罩层的效果,一般我们遮罩层是借助position绝对定位实现的,可以写fixed,也可以写absolute,设置为fixed的时候,文档没有doctype,就会导致遮罩层出现在文档最下方,而不是绝对定位的效果,切换为ie9兼容模式依旧不能解决问题,那么只好加doctype了,但是加了之后老代码中的网页布局多写的是各种100%,页面错乱。

 

解决方案:

1. 费事,修改所有受影响的页面的样式和布局,如果你有时间的话

2. 加上doctype先,实现遮罩,然后切换为ie9兼容模式即可,页面的样式也不会错乱。

 

未验证的问题:

IE8及低版本是否存在此问题

 

结论:--

 

参考博客:position:fixed; 在IE9下无效果的问题