谈——IE8兼容模式不”纯洁“问题

    这两天被IE7折腾的死去活来,然后发现问题的根源在于IE8的兼容模式问题——IE8兼容模式下没有完全隔离开IE7、IE8的各项特性。
    一开始是一个工程在IE7下惨不忍睹,于是饭长小黑(我的同事兼老师)就着手进行了一系列的IE7样式调整(IE8的浏览器模式IE7,文档模式IE7下进行的)。然而,昨天在原生IE7浏览器的访问,给我们都泼了一盆冷水,很多BUG犹在。理论上IE8的兼容模式应该和IE7是一样的吧?但为什么实际却差这么多?于是又开始baidu,google寻找问题的原因。在受尽磨难(IE7的折磨以及换发票被阿姨鄙视)后,我们英俊神勇的饭长让我们看到了光明(夕阳...),
 
看问题:
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGX...."> 大概就是这么一个东西,在IE7下是不能显示图片的,显示为一个X,但是在IE8及以上浏览器上是可以识别的。因为这种小文件嵌入只有IE8及以上浏览器才支持。问题是IE8的兼容模式下居然也是能够显示出来的!也就是说,IE8的兼容模式下一些IE7原本没有的特性也有了,另外就是 * 作为IE7的属性级CSS hack IE8是不能识别的,然而在兼容模式下也不能识别,这一方面IE8兼容模式又利用了IE8的渲染方式而不是IE7的,,但IE9下的IE9兼容模式和原生IE7一样是可以识别的。
 
        讲了这些,主要是觉得IE8的兼容模式,没有把IE7的全部特性都分离开来。也就是说IE8的兼容模式下夹带了一些IE8的特性,导致开发的时候兼容模式和原生IE7渲染不一致,经过简单的测试,IE9这方面做的很好。
    
    前端水太深,懂的不。现在发现一点问题,又不敢确定,所以发文,希望各位能够多多指点,谢谢!

posted on 2012-07-31 13:16  Simplify  阅读(353)  评论(0)    收藏  举报

导航