我正在尝试确认这件事情,以便我们不必在IE7和IE8中进行测试时使用单独的虚拟机。我通常只是使用IE9(F12)中的开发人员工具并更改浏览器模式和文档模式来进行IE7和IE8测试。
那么,这种方法与在“真正”的IE7和IE8中进行测试相比如何?有人做过比较或看到了详细说明吗?
我认为IE7和IE8渲染引擎只是包含在IE9中,并且它只是使用这些引擎。还有其他需要知道的吗?
我正在尝试确认这件事情,以便我们不必在IE7和IE8中进行测试时使用单独的虚拟机。我通常只是使用IE9(F12)中的开发人员工具并更改浏览器模式和文档模式来进行IE7和IE8测试。
那么,这种方法与在“真正”的IE7和IE8中进行测试相比如何?有人做过比较或看到了详细说明吗?
我认为IE7和IE8渲染引擎只是包含在IE9中,并且它只是使用这些引擎。还有其他需要知道的吗?
这里显示了一个透明PNG图像出现和消失的页面。在真实的IE 7中,您可以看到图像边缘周围的黑暗区域,但在IE 9的IE 7模式中则没有。
在真正的IE 7中,Base64图片无法使用,但在IE 9的IE 7模式中可以。您可以在这里测试。
这里显示了一个应用了zoom: 1px;
CSS的段落。在真正的IE 7中,段落看起来非常小,但在IE 9的IE 7模式中则不是这样。
这里显示了一个缩放为50px × 50px的256px×256px图像。在真正的IE 8中,边缘看起来很平滑,但在IE 9的IE 8模式中则不是这样。
CSS bug 9来自James Hopkins IE 8 bug列表(JHIE8B),不影响IE 9的IE 8模式(测试案例,备用测试案例)。该bug的描述是“使用MS Sans Serif字体时,项目符号(填充的圆点)列表标记渲染错误”。
CSS bug 15来自JHIE8B,不影响IE 9的IE 8模式(测试案例,备用测试案例)。该bug的描述是“一个包含IMG的内联框的下降空间(垂直对齐:基线,并且没有包含文本的同级行框)仅在:hover
上绘制,嵌套在A元素中”。
CSS bug 22来自JHIE8B,不影响IE 9的IE 8模式(测试案例,备用测试案例)。该bug的描述是“当动态插入属性时,content
属性不返回属性的值”。
CSS bug 31来自JHIE8B,不影响IE 9的IE 8模式(测试案例)。该bug的描述是“当使用@import导入这些样式规则时,标记框不继承附加到其上的元素的样式”。
来自JHIE8B的CSS bug 38不会影响IE 9的IE 8模式(测试用例)。该bug的描述为:“匹配一个元素的规则集,其中包括float
值、max-height
值和overflow
值为scroll
,将导致完全页面空白(强制标准模式)或兼容性视图回退”。
来自JHIE8B的CSS bug 56不会影响IE 9的IE 8模式(测试用例)。该bug的描述为:“相对定位后代的堆叠上下文(具有比其包含块更低的堆叠级别)在包含块的堆叠级别因重置以反映默认的从前到后顺序而重新计算时,不会在它的升级:hover
(或:active
)时重新计算”。
来自JHIE8B的CSS bug 57不会影响IE 9的IE 8模式(测试用例)。该bug的描述为:“带有visibility:hidden
的内联元素,或者紧接在父级的结束标记之前或者紧接在父级的开始标记之后并且紧接在父级的结束标记之前,防止text-decoration
值为underline
和overline
被应用到行框上”。
CSS bug 60来自JHIE8B,不影响IE 9的IE 8模式(测试用例,备选测试用例)。该bug的描述是“等效于 table-cell
元素的匿名表对象内部的文本无法被选择”。
CSS bug 62来自JHIE8B,不影响IE 9的IE 8模式(测试用例,备选测试用例)。该bug的描述是“半透明元素及其内容剪切时(父级应用了overflow:hidden
),在溢出父级框时,在提供溢出边界的外侧边缘上经历1像素与透明度相关的渗漏”。
CSS bug 65来自JHIE8B,不影响IE 9的IE 8模式(测试用例,备选测试用例)。该bug的描述是“当:first-child
伪元素应用了background-image
时,应用到其关联元素的另一种background-image
不会显示”。
JavaScript bug 1来自JHIE8B,不影响IE 9的IE 8模式(测试用例,备选测试用例)。该bug的描述是“在一个for
循环中使用querySelectorAll
语句并且其中有一个break
,会导致整个程序崩溃。”。
使用多个虚拟机还是有点不方便,但至少它们是免费的,而且它们也可以在VirtualBox中使用。
编辑 1 (2012-08-21 19:40:46Z):添加了IE 9的IE 8模式与真正的IE 8表现不同的示例。
编辑 2 (2012-11-16 08:11:42Z):更新了第一个IE 9的IE 7模式与真正的IE 7表现不同的示例中的链接,并添加了第三个示例。
编辑 3 (2012-11-22):添加了11个IE 9的IE 8模式与真正的IE 8表现不同的示例。
除了Nick的回答以外,以下是IE9在IE7模式下与真正的IE7有不同行为的两个例子:
这让你想知道,在IE9中实现的多少其他Web API会在IE9-in-IE7-mode中工作...