在IE6中设计的ASP.net web应用程序在IE8中存在兼容性问题



我目前使用的web应用程序设计为在IE6中工作。但是现在我的客户想把应用升级到IE8。我在我的系统中安装了IE8,但是现在网页不能像IE6那样很好地对齐。

文本框和其他一些字段从它们的原始位置移动,它们的长度和宽度也改变了。有些人建议将标签<meta http-equiv="X-UA-Compatible" content="IE=IE5" >放在HTML页面的标题部分以获得兼容模式,但它对我不起作用。有人能帮帮我吗?

这篇文章的标题总结了IE6的很多缺点,以及为什么它给今天的web开发人员带来这么多麻烦,以及为什么这么多公司这么长时间都不愿意升级。然而,即使是这些公司现在也被迫升级,因为新的IE6许可证根本不可用。

ua兼容的hack没有工作,因为它所做的只是告诉IE8使用它的"遗留"渲染引擎来模拟旧版本的IE。这听起来应该可以工作,但不幸的是,它只会下降到IE7的兼容性。

所以你可以尝试ie7兼容模式。这并不能保证达到这个效果,但我猜它离IE6更近了一步。你应该能够通过改变你已经拥有的元标签来测试,但你也可以通过进入开发者工具来切换IE8的渲染模式,它在窗口的顶部有一个渲染模式切换。

所有这一切的问题是,它不会是一个永久的解决你。即使你让它在IE7兼容模式下工作,也不能保证当用户升级到IE9时(他们很快就会这么做),IE7模式会继续为你工作。IE10也在开发中。

如果你在网站上遇到的主要问题只是文本框和其他对象的轻微移动,那么你实际上并没有做得太糟糕——一些为IE6编写的网站在现代浏览器中被破坏得太严重,甚至不考虑升级它们;只需要重写一下。但是你的听起来应该是可以挽救的。

你的问题最有可能的罪魁祸首是怪癖模式。

Quirks模式是旧版本IE (IE6及更早版本)使用的呈现模式,而不是遵循定义的web标准。IE6是第一个支持标准模式的IE版本,尽管它默认为与IE5兼容的怪癖模式。在此之前,IE5只使用怪癖模式。这可能解释了为什么你的建议是尝试使用IE5兼容模式…遗憾的是,这个建议永远不会起作用。

在Quirks模式和Standards模式之间有许多不同之处,但最主要的是盒子模式。简而言之,在怪癖模式下,元素的大小(即高度和宽度)包括边框和边距,而在标准模式下则不包括。

这两种模式之间还有很多其他的区别,但这是真正导致最糟糕的分页布局的一个。

听起来你的网站是用怪癖模式设计的,而不是标准模式。不幸的是,您无法自动修复它;你只需要检查一下你所有的样式,调整位置和大小,直到它工作。

还应该确保在HTML代码的顶部有一个有效的Doctype声明。这将帮助浏览器选择正确的呈现模式。如果没有它,你可能会发现你有时仍然会陷入怪癖模式。

我会强烈建议您在其他浏览器(如Chrome和Firefox)中测试该站点。这可能会帮助你找出代码中的其他错误,而IE8可能没有问题。即使最终用户只打算使用IE8,我也建议这样做,因为正如我所说,他们几乎肯定会在不久的将来升级到IE9,而IE10也不会太久。IE9比IE8更符合标准,IE10也将如此,这意味着如果一个页面在Chrome和Firefox中呈现良好,那么当它发布时,你应该有信心它在IE9和IE10中也能正常运行。这将使你在一年的时间里不再重复IE6->IE8的问题。

希望对你有帮助。

如果你有任何特定的代码需要更多的帮助,我建议你在这里发布一个新的问题

设计用于IE6

这个是你的问题。IE6在标准方面从来都不是一个强大的浏览器,所以很可能HTML包含了许多适当的工作-升级显示出这些实际上是多么糟糕。

看一看这篇关于IE6有多"好"的漫画。

    修复网站(强烈推荐)
  • 告诉客户继续使用IE6

即使你是一个初学者,你也应该能够适当地修改HTML来解决这个问题。

我希望CSS样式已经应用在一个单独的样式表中,而不是内联。如果它是内联的,最好的办法是从头开始正确地重新开发这些页面。你的HTML是好的,不需要焦土策略的其他线索:

  • 格式良好(正确关闭标签,使用引号围绕html属性)
  • 使用div和span进行布局,而不是到处都是table
  • 你有一个DOCTYPE在每个页面的顶部

如果运气好的话,样式和内容是分开的,一种方法是创建一个全新的样式表,然后使用它使页面在IE8/Firefox/Safari中看起来正确。然后,您可以使用条件注释恢复到IE6的旧样式表。

作为一个临时的解决办法,你可以告诉你的客户在兼容模式下查看网站(你甚至可以通过从服务器发送元标签/头来强制这种模式)。虽然,这可能不能解决所有的问题,但它应该涵盖了大部分问题。

从永久解决方案,你应该开始将你的页面一个接一个地迁移到标准模式(即支持当前主流浏览器,如IE8/9, FF, Chrome, Safari)

最新更新