IE8 是不是有像 6 或 7 这样的渲染错误?

Posted

技术标签:

【中文标题】IE8 是不是有像 6 或 7 这样的渲染错误?【英文标题】:Does IE8 have rendering bugs like 6 or 7?IE8 是否有像 6 或 7 这样的渲染错误? 【发布时间】:2010-12-14 07:11:18 【问题描述】:

IE8 是否有像 IE6 或 IE7 这样的渲染错误?如果我让我的网站在 Firefox 3.5 中正确呈现,它在 IE8 中看起来是否相同,还是需要额外的更改/hacks/等?

我想让我的网站兼容 IE8。我需要为此做一些额外的事情吗?

更新:2010 年 3 月 6 日

是否有可能我必须为 IE8 添加条件 CSS?

【问题讨论】:

为什么是跨浏览器兼容性问题? 这绝对属于***,除了它是一个非常糟糕的问题。 好吧,你可以不小心再次回滚 :-) 这完全属于SO,为什么会有人认为它属于SU?? 查看修订历史。最初的问题很糟糕,我可以理解当时它怎么可能被错误地理解。 【参考方案1】:

已编辑我移动了一段,并根据一些反馈重写了它。

如果您探索http://quirksmode.org,您会发现兼容性页面解释了各种浏览器之间的差异,包括 Firefox 3.5 和 IE8。

您很可能会进行更改,但这取决于您使用的是什么,因为有很多相似之处,不需要更改。

【讨论】:

他是否会进行任何的更改实际上取决于他的网站。 IE8 比以前的版本更好;虽然它仍然不理想(到目前为止),但许多核心内容都得到了相当好的支持。 @ChssPly76 - 如果您为 FF3.5 设计网站,那么您将不会考虑所有 CSS 问题,例如 IE8。它更好,但还不够完美,而且 FF3.5 比 IE8 更好地支持更新的标准。 在此处插入浏览器电子游戏 你没有理解我的意思。就你所知,OP 的网站可能包含 3 个白色背景的文本段落或完全基于 Flash。毫无疑问,FF(Safari / Opera / Chrome / ...)支持的东西不受 IE8 (正确)支持。但是您不知道 OP 是否会使用它们中的任何一个;因此你不能说“你会做出很多改变”。 @ChssPly76 - 这就是为什么我建议在 quirksmode 上使用兼容性页面。这将帮助他了解差异是什么,看看它们是否会真正影响它们,但是,我希望他需要做出改变。这需要 OP 进行一些研究。【参考方案2】:

所有浏览器都有其不同的怪癖,没有一个浏览器可以保证显示或行为与另一个浏览器相同。虽然 W3C 在扩展应标准化的功能方面取得了长足的进步,但许多 RFC 尚未达到 Recommendation 阶段,该阶段意味着它将不再改变并且更有可能可以接受的标准来发展。 因此,您必须确保您的网站至少可以在您的焦点小组中的浏览器中运行。

首先,使用reset.css 或normalize.css。两者都试图服务于相同的目标(浏览器之间的一致性修复),但每个都从不同的角度解决问题。因此,请确保选择最适合您的那一款。虽然并不完美,但它们在所有浏览器中都非常接近,如果没有它,这比你说的要多。

其次,查看QuirksMode 以查看带有标准的various browser compatability(这些标准是否处于推荐阶段)。在这里,您可以决定要使用的与您的焦点小组的兼容性相匹配的功能。

第三,凭借您“一致”的 css 基础的新功能以及对哪些浏览器支持哪些内容的了解,请务必阅读、接受、宣传和应用渐进增强技术(请参阅下面我喜欢的文章)。渐进式增强的力量在于使用有效的方法,而不是试图将胖脚塞进细脚鞋中。

渐进增强文章:

    http://www.alistapart.com/articles/understandingprogressiveenhancement http://www.alistapart.com/articles/progressiveenhancementwithcss http://en.wikipedia.org/wiki/Progressive_enhancement

最后,安装您在焦点小组中考虑的任何其他浏览器。这样做可以让您毫无疑问地测试页面上的外观。

在 Windows 上,我建议安装 IE9 以便能够将渲染模式切换到旧版本的 IE。虽然这些渲染模式并不完美,但在大多数情况下,它们可以和真实的一样可靠。如果您无法安装 IE9,我为您感到难过,但幸运的是,IE8 为您提供了类似的渲染模式。

在其他任何东西上(如果你想要真正的 IE 浏览器而不是仿真,甚至是 windows),你需要运行一个 windows 虚拟实例。有很多方法可以获取,MS 甚至专门为开发人员提供了各种实例图像,以便能够测试旧版本的 IE。有关从何处获取 MS 提供的 IE6 和 IE7 VPC 的更多详细信息,请参阅this blog post。

使用这些工具,您应该能够开发出在 100% 的浏览器中看起来 - 不 - 可以正常工作和降级的设计,并验证它是否正确实现。虽然这可能有点令人生畏,但这将大大减少发布时显示/js 相关错误的机会。

【讨论】:

【参考方案3】:

是的,IE 8 仍然存在一些渲染错误。它们中的大多数是固定的,但我认为这些例如仍然存在:

text-align 属性应用于块元素,而不仅仅是内联元素。

即使没有内容,元素的内容仍然高一个字符。

当然,这也取决于您使用的文档类型。如果没有正确的文档类型,页面将以怪异模式呈现,这几乎会将浏览器抛回 IE 4。

如果您为不同的浏览器/版本组合使用不同的样式表,您将需要另一个样式表。 IE 8 的行为与任何其他浏览器或 IE 版本不同。我总是为所有浏览器使用一个样式表,我根本不需要对其进行任何更改以使其适用于 IE 8。

【讨论】:

为什么投反对票?如果你不说你不喜欢什么,那是毫无意义的。【参考方案4】:

扩展@Kevin 和@James 的答案,另一个很好的资源是Browser Shots,可以在不同的浏览器和平台上获取您网站的屏幕截图。对于测试您无权访问的浏览器/版本非常有用,尤其是对于棘手的 CSS 布局。

自从我在一家仅限 Windows 的商店工作以来,我一直使用它来查看 Mac 和 Linux 浏览器的输出。

注意,URL 必须是外部可访问的;如果您在本地机器上进行开发,则需要在防火墙上戳一个洞,并且可能设置一个动态 DNS 名称而不是 IP 地址。

【讨论】:

是的,服务可以很好,所以 +1。有时,要建立一个可公开访问的网站太难了。我发现在 Windows 上安装主要浏览器和 IE Tester(在 XP 或更高版本上提供 IE5.5 - IE8 访问)更容易。除非出现错误报告,否则其他所有内容通常都太晦涩难懂。 Adobe 在 browserlab.adobe.com 上也有一个项目。它需要登录,但结果几乎是即时的,并且界面与选项卡相得益彰。

以上是关于IE8 是不是有像 6 或 7 这样的渲染错误?的主要内容,如果未能解决你的问题,请参考以下文章

javascript,是不是有像 isArray 这样的 isObject 函数? [复制]

R中是不是有像bigmemory这样的包可以处理大型列表对象?

求web兼容性测试用例

TabBarController 是不是有像 prepareForSegue 这样的拦截点?

javascript 是不是有像堆栈和队列这样的对象/容器? [复制]

SQLDeveloper 是不是有像 Toad 这样的复制/克隆用户的工具?