我试图确认这一点是出于工作目的,因此我们不需要单独的虚拟机在 IE7 和 IE8 中进行测试。我一直只是使用IE9(F12)中的开发者工具并更改浏览器模式和文档模式来进行IE7和IE8测试。
这与“真正的”IE7 和 IE8 中的实际测试相比如何?有没有人做过比较或看过详细说明的文章?
我假设 IE7 和 IE8 渲染引擎只是包含在 IE9 中,而它只是使用这些引擎。还有什么我应该知道的吗?
我试图确认这一点是出于工作目的,因此我们不需要单独的虚拟机在 IE7 和 IE8 中进行测试。我一直只是使用IE9(F12)中的开发者工具并更改浏览器模式和文档模式来进行IE7和IE8测试。
这与“真正的”IE7 和 IE8 中的实际测试相比如何?有没有人做过比较或看过详细说明的文章?
我假设 IE7 和 IE8 渲染引擎只是包含在 IE9 中,而它只是使用这些引擎。还有什么我应该知道的吗?
我总是使用真正的浏览器。我有 IE 9 的 IE 7 模式的三个示例,其行为与真正的 IE 7 不同:
这是一个显示淡出和淡入的透明 PNG 的页面。在真正的 IE 7 中,您可以看到图像边缘周围的黑暗。在 IE 9 的 IE 7 模式中情况并非如此。
Base64 图像在真正的 IE 7 中不起作用,但它们在 IE 9 的 IE 7 模式中起作用。这是一个您可以测试自己查看的页面。
这是一个显示zoom: 1px;
应用了 CSS 的段落的页面。在真正的 IE 7 中,该段落显得非常小。在 IE 9 的 IE 7 模式中情况并非如此。
我有 12 个 IE 9 的 IE 8 模式与真正的 IE 8 表现不同的例子:
这是一个显示 256px × 256px 图像缩放到 50px × 50px 的页面。在真正的 IE 8 中,边缘看起来很平滑。在 IE 9 的 IE 8 模式中情况并非如此。
James Hopkins 的 IE 8 错误列表(JHIE8B) 中的CSS 错误 9不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“使用 MS Sans Serif 字体时错误呈现的子弹(填充圆盘)列表标记”。
JHIE8B 中的 CSS 错误 15 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“嵌套在 A 元素中的包含 IMG(具有垂直对齐:基线,并且没有包含文本的同级行框)的内联框的下降空间,仅绘制在:hover
”上。
JHIE8B 中的 CSS 错误 22 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“content
当属性被动态插入时,属性不返回属性的值”。
JHIE8B 中的 CSS 错误 31 不会影响 IE 9 的 IE 8 模式(测试用例)。该错误的描述是“在使用 @import 导入这些样式规则时,标记框不会从其附加的元素继承样式”。
JHIE8B 中的 CSS 错误 38 不会影响 IE 9 的 IE 8 模式(测试用例)。该错误的描述是“匹配一个元素的规则集,其中包括一个float
值、一个max-height
值和一个overflow
值scroll
,触发完整的页面空白(强制标准模式)或兼容性视图回退”。
JHIE8B 中的 CSS 错误 56 不会影响 IE 9 的 IE 8 模式(测试用例)。该错误的描述是“当包含块的堆叠级别被重置以反映默认的从后到前的顺序时,不会在上升:hover
(或)上重新计算相对定位的后代(堆叠级别低于其包含块)的堆叠上下文:active
在文档树中”。
JHIE8B 中的 CSS 错误 57 不会影响 IE 9 的 IE 8 模式(测试用例)。该错误的描述是“内联元素,visibility:hidden
其直接位于父项的结束标记之前或紧接在父项的开始标记之后并立即位于父项的结束标记之前,阻止值并应用于行框”。text-decoration
underline
overline
JHIE8B 中的 CSS 错误 60 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。table-cell
该错误的描述是“与元素等效的匿名表对象内的文本不可选择”。
JHIE8B 中的 CSS 错误 62 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“一个半透明的元素,overflow:hidden
当它溢出它的父框时,其内容被剪裁(应用于父级),沿着为溢出提供边界的外边缘经历 1 像素透明度相关的出血”。
JHIE8B 中的 CSS 错误 65 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“当 abackground-image
应用于:first-child
伪元素时,background-image
不会显示应用于其关联元素的不同”。
JHIE8B 中的 JavaScript 错误 1 不会影响 IE 9 的 IE 8 模式(测试用例,备用测试用例)。该错误的描述是“在循环外querySelectorAll
的语句中使用,会触发完整的程序崩溃。”。break
for
拥有多个虚拟机有点不方便,但至少它们是免费的,而且它们也可以与 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):添加了 IE 9 的 IE 8 模式的 11 个示例,其行为与真正的 IE 8 不同。
为了补充尼克的答案,这里有两个 IE9 在 IE7 模式下的行为与真正的 IE 7 不同的示例:
让您想知道在 IE9 中实现的其他多少 Web API 将在 IE9-in-IE7-mode 中工作......
在 IE10 中,似乎存在一系列非常相似的问题,使浏览器和文档模式不适合进行可靠测试。
许多在 IE 7 和 IE 8 中工作的过滤器在文档和浏览器模式下不起作用。