zoukankan      html  css  js  c++  java
  • IE8如何定义浏览器工作模式避免网页显示混乱

      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 模式下。

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    Effective Java 19 Use interfaces only to define types
    Effective Java 18 Prefer interfaces to abstract classes
    Effective Java 17 Design and document for inheritance or else prohibit it
    Effective Java 16 Favor composition over inheritance
    Effective Java 15 Minimize mutability
    Effective Java 14 In public classes, use accessor methods, not public fields
    Effective Java 13 Minimize the accessibility of classes and members
    Effective Java 12 Consider implementing Comparable
    sencha touch SortableList 的使用
    sencha touch dataview 中添加 button 等复杂布局并添加监听事件
  • 原文地址:https://www.cnblogs.com/Athrun/p/1450373.html
Copyright © 2011-2022 走看看