没有合适的资源?快使用搜索试试~ 我知道了~
首页IE8如何定义浏览器工作模式避免网页显示混乱
IE8如何定义浏览器工作模式避免网页显示混乱

随着IE8 beta1的发布,发现连sina有显示问题,由于IE8 对标准的“良好”执行,当 XHTML 文档使用 Transitinal 类型时,会自动选择 Quirks 模式,即 IE5 的模式来解析,所以也就不难理解为何大多数站点会遭遇显示问题了。
资源详情
资源评论
资源推荐

W3C 终于发布了第一个 HTML5 草案,大家还沉溺在 HTML2XHTML 转换的快乐和痛
苦中时,却又突然发现,HTML5 和 XHTML2,到底谁是未来?……,当然,HTML5 和
XHTML2 会保持最大兼容性,W3C 和 WASP 肯定比我们更清楚这一点的重要性。不过如
果都“最大兼容”了,为何不统一呢?HTML 那种不标准的代码解析起来可不怎么好玩。
W3C 的效率那是相当出名(就像 IE 实现标准的效率),现在第一个草案,正式定稿
最早是 2010 年,这么算起来,要等 IE 支持(我坚信那时 IE 仍是主流浏览器),恐怕我们
的显示设备原理和效果都升级换代了。到时再用一份“妥协”过的“标准”——拜托,这可是
IT 产业。很多美好的标准或技术,从我们开始期盼,到我们都不再编码,它都不会实现。
其实 HTML5 这事儿没多大动静,闹得正欢的是 IE8 实现“超级标准模式”的事儿,IE
开发团队为了让只认识 IE 的,用 IE6/7 的所谓“符合标准”代码,错误的实现他们想要的样
式的网页作者们不用修改他们的网页,决定让 IE8 在“标准模式”下实现 IE7 的显示结果,
而实现“更正确”的标准需要在网页中加入一段 META 信息。
嗯,技术一点来说,IE6 依靠 DOCTYPE 来区分怪癖模式(IE5.5 或更早版本的绘制网页方
式)和标准模式,但 IE6 实现的“标准模式”依然有许多错误,而当 IE7 改进“标准模式”时,
这些“错误的标准模式的代码”就会展现出错误的样式。为了避免该问题再发生在 IE8 身上,
IE 团队决定使用一个 META 标签或 HTTP 包 header 来告诉浏览器,用“超级标准模式”来绘
制网页,而现在的标准网页将默认为 IE7 的绘制方式。
如果 ACID2 测试网页要想在 IE8 下正确表现,ACID2 测试需要修改网页,加上一个
META 信息,告诉 IE8 用“超级标准模式”。
随着 IE8 beta1 的发布,发现连 sina 有显示问题,由于 IE8 对标准的“良好”执行,当
XHTML 文档使用 Transitinal 类型时,会自动选择 Quirks 模式,即 IE5 的模式来解析,所
以也就不难理解为何大多数站点会遭遇显示问题了。
如何处理该问题呢?方法如下:
1. 将文档类型改成 Strict。也就是将
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
改成
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-Strict.dtd">
2. 该完之后如果还没有解决问题,那么只好强制声明了,在 </head>结束之前加入
<meta http-equiv="X-UA-Compatible" content="IE=8" />
如果需要工作在 IE7 Strict 模式下,改成 IE=7。
这样一来,破相的问题就基本解决了。如何查看 IE8 的工作模式呢,在 IEBlog 的留言
中有解答,执行 javascript:alert(document.documentMode);,返回 5,说明工作在 IE5 Quirks
模式下;返回 7,说明工作在 IE7 Strict 模式下;返回 8,说明工作在 IE8 Standards 模式下。
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论4