我本周末为我的客户推出了一个网站。它在Firefox,Chrome,Opera,Safari和IE 9中看起来很不错。
然而,IE 7和8(也许6个)给了我真正的问题。主页很好,但辅助页面有不同的主题布局。
我编辑了二十一个Wordpress主题。我有一台Mac,所以我很难测试IE,因为它是一个Windows浏览器。我有一台安装了IE 8的XP笔记本电脑。这就是我知道它搞砸了。辅助页面非常糟糕。
我的主要内容,左侧栏和页脚都是错位的。我尝试了几件事来解决问题。我研究了黑客并尝试了它们但无济于事。
我尝试更改我的图片上的定位但它只是使页面看起来比现在更糟糕。我真的很难过。
如果有人可以帮助或引导我朝着正确的方向前进,那将非常感谢。网址为www.jubileecf.com。 谢谢, 〜〜灰分
答案 0 :(得分:1)
问题在您的代码中可见:
<script>(function fix_ie8() {if (strpos($_SERVER['HTTP_USER_AGENT'],”MSIE 8″)) {header(”X-UA-Compatible: IE=7″);}}
ADD_ACTION(” send_headers’,” fix_ie8‘ ))();
这在几个方面都是错误的。
首先,它使用了错误的引号字符。
其次,你有PHP代码试图成为Javascript。
第三,即使您将其更改回PHP,仍需要移动它,因为header()
只能在输出页面的任何部分之前调用。所以它需要在你开始之前完成,而不是在标题的中间。
最后,这会严重破坏网站的原因是因为它导致Javascript解释器看到错误,并停止处理。因此,您所包含的html5.js
文件中的IE修复程序将无法运行,因此您的页面布局将被破坏。
简而言之,这行代码需要被锁定,而不再被提及。
因此,让我们挑选一下这里发生的事情并尝试寻找解决方案......
代码正在尝试使用X-UA-Compatible
标头强制IE8进入IE7兼容模式。我要说的是,既然你说自己从未在IE中测试过,为什么你认为你还需要使用IE7兼容模式呢?
为什么不在没有那行代码的情况下尝试它,看看会发生什么?如果你在IE8中确实有一些小的布局故障,那么最好修复它们而不是使用兼容模式。
如果您必须使用IE7兼容模式,那么您可以使用它而无需任何类型的脚本。只需使用元标记:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
这就是你所需要的一切。
如果您希望标签仅影响IE8(即不是IE9),那么您可以将其包装在IE条件注释中(您已经在页面的其他地方使用过)。