我目前使用的Web应用程序旨在在IE6中工作。但现在我的客户希望将应用程序升级到IE8。我在我的系统中安装了IE8,但现在网页与IE6中的网页不完全一致。
文本框和其他一些字段从原始位置移开,其长度和宽度也会发生变化。有些人建议将标签<meta http-equiv="X-UA-Compatible" content="IE=IE5" >
放在兼容模式的HTML页面的head部分,但它对我不起作用。有人可以帮帮我..?
答案 0 :(得分:1)
旨在在IE6中工作
这是你的问题。 IE6从来就不是标准的浏览器,因此很可能HTML包含许多适当的工作 - 升级显示这些实际上有多糟糕。
Take a look here以滑稽的方式了解IE6的“好”程度。
你可以:
即使您是初学者,您也应该能够适当地修改HTML以解决此问题。
答案 1 :(得分:1)
这篇文章的标题总结了很多关于IE6的不好之处,以及为什么它为今天的Web开发人员带来如此多的麻烦,以及为什么这么多公司如此不愿意这么长时间进行升级。然而,即使这些公司现在也被迫升级,因为IE6的新许可证根本无法使用。
UA兼容的hack无法正常工作,因为它所做的就是告诉IE8使用它的“遗留”渲染引擎来模拟旧版本的IE。这听起来应该可以工作但不幸的是,它只会降低IE7的兼容性。
所以你可以尝试IE7兼容模式。这并不能保证做到这一点,但我想它离IE6更近了一步。您应该能够通过更改已有的元标记来测试它,但您也可以通过转到开发人员工具在IE8中切换渲染模式,该工具在窗口顶部具有渲染模式切换。
所有这一切的麻烦在于它不会成为你的永久修复。即使你确实在IE7兼容模式下工作,也不能保证当用户升级到IE9(他们将很快开始做)时,IE7模式将继续为你工作。 IE10也在开发中。
如果您对网站遇到的主要问题只是文本框和其他略微移动的对象,那么您实际上并没有做得太糟糕 - 一些为IE6编写的网站在现代浏览器中甚至被严重破坏甚至考虑升级它们;他们只需要重写。但你的听起来应该是可以挽救的。
你问题最可能的罪魁祸首是Quirks Mode。
Quirks模式是旧版IE(IE6及更早版本)使用的渲染模式,而不是遵循定义的Web标准。 IE6是第一个支持标准模式的IE版本,虽然它默认为与IE5兼容的怪癖模式。在此之前,IE5只使用了怪癖模式。这可能解释了为什么你的建议是尝试使用IE5兼容模式......遗憾的是,建议永远不会有效。
Quirks模式和标准模式之间存在许多差异,但主要的是框模型。简而言之,在怪癖模式中,元素的大小(即它的高度和宽度)包括边界和边距,而在标准模式下则不包括。
这两种模式之间存在其他各种差异,但这是真正导致最糟糕的页面布局的原因。
听起来您的网站设计时考虑了怪癖模式,而不是标准模式。不幸的是,你无法自动修复它;你只需要调整所有的样式来调整定位和尺寸,直到它起作用。
您还应该确保HTML代码顶部有一个有效的Doctype声明。这将有助于浏览器选择正确的渲染模式。没有它,你可能会发现你有时会陷入怪癖模式。
我强烈建议您在其他浏览器(如Chrome和Firefox)中测试该网站。这可能会帮助你找到IE8可能没有问题的代码中的其他错误。即使终端用户只打算使用IE8,我也建议这样做,因为正如我所说的,他们几乎肯定会在不久的将来升级到IE9,而IE10也不会太长。 IE9比IE8更符合标准,IE10也是如此,这意味着如果一个页面在Chrome和Firefox中呈现得很好,那么你应该有信心在IE9和IE10推出时它会没问题。这将使您免于在一年的时间内重复IE6-> IE8问题。
希望有所帮助。
如果您有任何特定的代码需要更多帮助,我建议您在新问题下发布。
答案 2 :(得分:1)
我希望CSS样式已经应用在单独的样式表中,而不是内联样式。 如果是内联,您最好的选择是从头开始正确地重新开发这些页面。其他线索表明您的HTML很好并且不需要焦土政策:
如果运气好,并且风格与内容分开,那么一种方法就是创建一个全新的样式表,然后用它来使页面在IE8 / Firefox / Safari中看起来正确。然后,您可以使用Conditional Comments恢复到IE6的旧样式表。
答案 3 :(得分:0)
作为临时解决方法,您可以告诉客户在compatibility mode中查看网站(您甚至可以通过从服务器发送元标记/标题来强制执行此模式)。虽然,这可能无法解决您的所有问题,但它应涵盖大部分问题。
从永久性解决方案中,您应该开始逐页迁移到标准模式(即支持当前主流浏览器,如IE8 / 9,FF,Chrome,Safari)