强制IE8或IE9文档模式为标准
好吧,非常抱歉,因为在这里生硬,但我在过去的2年中一直在IE 8和IE9上开发,似乎无法得到正确的结果。我在恶魔公司工作并为他们的网站开发。出于某种原因,IE8或IE9默认采用较低的文档模式,如ie7或ie8。我已经尝试了一切...强制IE8或IE9文档模式为标准
1)把HTML 5文档类型,没有别的。根据微软这应该是足够的 2)把html5文档类型,并把x-ua兼容元标记首先在标题下的页面,并分别设置为边缘或IE8或IE9。
我的页面看起来像这样
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7">
<![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt- ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <! [endif]-->
<!--[if gt IE 8]> <html class="no-js"> <! [endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这真是越来越沮丧,因为一切我读到说它应该工作。微软声称,这将工作,甚至只是设置HTML 5文档类型将工作。我听说设置了一个http头来解决,但说实话,微软是严肃的?我发现很难相信开发者需要改变他们的apache设置来添加一个http头来使页面呈现我是标准模式
有人可以帮我吗?我错过了什么?我真的开始讨厌微软更多!!!!!
更新::
我最近发现,我公司具有“兼容性视图中显示Intranet站点”勾掉,它看起来像升,如果我取消选中它,然后它会正常工作。但是,这不是解决方案!在我阅读的地方,我发现如果你看到X-UA兼容的元标记或http头,它应该优先。那么这是一个完全的谎言。其他人有答案吗?我明白,外部用户将会很好,但是我的业务正在测试,他们提出的问题是因为他们是内部的,很难说服他们,并告诉他们取消选中该框。它不给他们一个很好的感觉。此外,我不能让桌面工程团队删除它,因为它已经到位,因为旧的应用程序内部没有写入支持IE8,9,所以他们需要这个。
任何帮助表示赞赏。谢谢!
感谢
第5和代码的第6行是错误而引起的,如在评论@JaredFarrish言论,页面上显示的IE为空白。
在第5行的末尾,从
<! [endif]-->
删除空格在第6行的末尾,改变
<!--<! [endif]-->
到
<![endif]-->
您的实际页面,稍后的代码中可能会有一些内容会阻止IE上出现格式错误的结构。
目前还不清楚什么把IE放入怪癖模式。需要更多信息来解决这个问题。它甚至可能取决于页面所在的域,所以公开URL可能会有所帮助。有关通用性,请参见IE8 and IE9 Complications(设置浏览器模式)。
我认为这说“几代人都有IE8和IE9的并发症”。我可以背后。 –
我们的内联网也被锁定,兼容性视图用于所有内联网站点,并使用IE 8,因为它们都是Windows XP。我发现一旦IE 8开始处理标准锅炉板条件注释(以确定哪个类附加到<html>
标记),那么它是游戏结束:IE决定在那时它运行在兼容模式(IE 7 ),而我无能为力的事情将会恢复。
我发现,由<!DOCTYPE>
标签后立即放置<meta>
标签一切工作完全按预期:
<!DOCTYPE HTML>
<meta http-equiv="x-ua-compatible" content="IE=Edge">
我的眼睛似乎并不很“标准”,但它的工作原理。我喜欢这样做的其他方法,其中<meta>
标签可以放入<head>
,因为我尝试了几个小时。
拉尔夫培根的回答只是为我解决了这个问题。我们正在使用的html5样板没有任何问题。 如果您的Intranet使用兼容模式,那么你就应该把这个
<meta http-equiv="X-UA-Compatible" content="IE=edge">
后
<!DOCTYPE HTML>
所以,总体来说,您的标题应该是这样的:
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="en">
<!--<![endif]-->
这是来自同一家公司的samw浏览器有一个着名的“bug”,叫做死亡的尾随逗号!!! ***也许不是你。 –
但是,当我在同一浏览器中访问其他网站时,我发现模式设置为标准,所以我做错了什么? –
你是从HTML5 Boilerplate开始的吗?你能提供一整页你知道不能正确渲染的标记吗? –