我正在构建一个包含HTML5元素的网站,如果以前版本的IE会播放,我会更喜欢它,所以我正在使用googlecode的HTML5shim javascript。
我必须测试IE7和IE8的唯一方法是使用IE9上的开发人员工具来切换浏览器模式和文档模式。
即使使用垫片,如果我选择IE7或IE8浏览器模式及其相关标准模式,文档也相差甚远 - HTML5元素的行为不像div(我的印象是shim取代了所有新元素与divs)。
如果我选择IE7和IE8的怪癖模式,该网站或多或少看起来应该如何,这让我希望我可以解决任何剩余的问题,而无需借助剥离HTML5元素。
因此,如果您使用带有HTML5文档类型的IE7或IE8,它们是否会以怪癖或标准运行?
另外,我是否可以相信我在IE9中看到的模仿旧版本的内容是旧浏览器的用户实际看到的内容?
答案 0 :(得分:6)
我最近遇到了一些issues regarding IE9 emulating IE8使用X-UA兼容的IE = EmulateIE8来强制通过IIS进行IE8渲染。我必须说一切都很好,直到我从Jquery 1.4.3升级到Jquery 1.6.1。我开始在Jquery使用$("#myObject");
但在视觉上一切看起来都很好但是IE9的DOM还不是很好。在升级到IE9之前一切正常,如果Jquery 1.6.1正常工作,测试可能会再次降级到IE8。但根据我的经验,我不认为你可以信任IE9模拟旧浏览器,最好的办法是用旧的浏览器设置一个可以给你更好结果的虚拟机。我打算这样做,而是将VM与旧浏览器(IE8)一起使用。
<强>更新强>
我采用了VM路由方式,以这种方式测试IE8要容易得多,所以我所做的只是安装了安装了IE8的虚拟机。
答案 1 :(得分:4)
IE8和IE9中的兼容模式旨在让您完全按照自己的要求进行操作 - 在您的计算机上只有一个版本的IE时,测试您所有IE版本的网站。
原则上这是一个好主意。不幸的是,微软搞砸了。虽然兼容模式确实复制了IE7和IE8,但它们也有自己的错误和问题,这些错误在父浏览器和他们试图模拟的浏览器中都不会发生。
实际上,兼容模式实际上是另一组不同的浏览器。您不能依赖它们来准确地向您显示您的网站在IE7中的样子,但同时您仍然需要使用它们进行测试,以防您的用户因任何原因在兼容模式下运行。
您还询问了怪癖模式和标准模式。请注意,“怪癖模式”与兼容模式无关。
Quirks模式在IE中由页面顶部没有<!DOCTYPE>
声明的网站触发。这是在使用IE6引入标准模式时引入的,以允许站点继续在旧版本的IE中工作。因此,Quirks模式实际上是IE5兼容模式。今天绝对没有理由在任何网站中使用怪癖模式,因此您应该始终指定doctype(最好是HTML5 doctype)。如果您的网站在怪癖模式下看起来不错,而不是在标准模式下,那么您需要修复您的网站。
HTML5 doctype <!DOCTYPE html>
将在IE6及更高版本的所有IE版本中触发标准模式。事实上,这个doctype是由HTML5标准团队专门选择的,因为它是可用于所有现有浏览器的最短文档类型。
关于HTML5Shim:我在使用基本填充程序时遇到了一些麻烦。我从未追踪过这个问题,但我使用Modernizr来解决问题。它具有与基本填充程序相同的功能,以及用于浏览器兼容性检查的一系列其他有用功能。
你对垫片做什么的印象有点错误:它不会用div替换元素。它实际上做的是使用Javascript创建每个新HTML5元素的虚拟版本。这利用了IE中的一个怪癖,如果一个元素的实例是通过Javascript创建的,它就会将元素识别为有效的HTML。 (这是一个奇怪的怪癖,但事实证明黑客迫使IE接受现代标准是有用的。
希望有所帮助。
答案 2 :(得分:4)
请记住在这些元素上设置display:block
。像:
article, aside, figure, footer, header, hgroup, nav, section {display: block;}
在你的CSS中会有所帮助。
答案 3 :(得分:0)
我对ie7 / ie8 / ie9测试的回答是使用Sun Oracle的VirtualBox。它适用于Windows,Mac和Ubuntu!它包含Windows框和IE版本的真实图像。
https://www.virtualbox.org/wiki/Downloads
http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/
这对我测试旧版本的工作非常有用。