未来兼容性中的 META 标记和锁定

注意:本文档是预备文档,随时可能变更。

对于 Web 开发人员来说,文本兼容性是一个要考虑的重要问题。Windows Internet Explorer 8 引入了文本兼容性模式,该模式允许 Web 开发人员将浏览器设置为以与旧版本相同的方式显示网页,从而允许开发人员选择更新时间。

本 文档将介绍由 Windows Internet Explorer 8 支持的文本兼容性模式,以及如何使用自定义标头基于每个页面或每个站点实现这些模式。实现适当的兼容性模式后,可以确保站点与 Windows Internet Explorer 8 及更高版本兼容。

各种兼容性模式

Windows Internet Explorer 8 支持多种兼容性模式,它们可启用不同的受支持的功能,并影响内容的呈现方式。例如,

IE5 模式呈现内容时,像是使用了 Windows Internet Explorer 7 的 Quirks 模式,这与 Windows Internet Explorer 5 显示内容的方式很相似。

IE7 模式呈现内容时,无论页面是否包含 <!DOCTYPE> 指令,都像是使用了 Windows Internet Explorer 7 的标准模式。

EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈现内容。标准模式指令以 Windows Internet Explorer 7 标准模式显示,而 Quirks 模式指令以 IE5 模式显示。与 IE7 模式不同,EmulateIE7 模式遵循 <!DOCTYPE> 指令。对于多数网站来说,它是首选的兼容性模式。

IE8 模式最大限度地支持行业标准(包括 W3C Cascading Style Sheets Level 2.1 Specification 和 W3C Selectors API,并能有限支持 W3C Cascading Style Sheets Level 3 Specification(工作草案)。

Edge 模式通知 Windows Internet Explorer 以最高级别的可用模式显示内容,这实际上破坏了“锁定”模式。对于 Windows Internet Explorer 8,这与 IE8 模式是等效的。如果(假定)Windows Internet Explorer 的未来版本支持更高级别的兼容模式,设置为 Edge 模式的页面将显示在由该版本支持的最高级别模式中;但是,当使用 Windows Internet Explorer 8 查看时,这些相同的页面仍将显示在 IE8 模式中。由于在 Windows Internet Explorer 的未来版本中呈现页面内容可能出现意外,建议 Web 开发人员将 Edge 模式仅用于测试页面和其他非生产活动。

基于每个页面指定兼容性模式

要为网页指定文本模式,请使用 META 元素,以在该网页中包含 X-UA-Compatible http-equiv 标头。以下示例指定了 EmulateIE7 模式兼容性。

HTML:

<html><head><!-- Mimic Internet Explorer 7 --><title>我的网页</title><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />         </head>         <body>            <p>内容在此处。</p>         </body>  </html>

Content 属性指定了该页面的模式;例如,要模仿 Windows Internet Explorer 7 的行为,请指定 IE=EmulateIE7。同样,可指定 IE=5、IE=7 或 IE=8 以选择其中一种兼容性模式。您还可以指定 IE=edge 以通知 Windows Internet Explorer 8 使用最高级别的可用模式。

X-UA-compatible 标头不区分大小写;但是,它必须显示在网页中除 TITLE 和其他 META 元素以外的所有元素之前的标头(HEAD 部分)中。

基于每个站点指定兼容模式

通过使用 Web 服务器为站点定义自定义 HTTP 响应标头,可为网站指定文本模式。HTTP 响应标头是 Web 服务器附加到为响应 HTTP 请求而发送到浏览器中的文件的信息,这些信息通常包含发送回文件的日期、大小和类型。

下列文档介绍了将 Web 服务器配置为将自定义 HTTP 响应标头附加到所有网页中所需的步骤。这将导致 Windows Internet Explorer 8 使用指定的文本兼容性模式,例如 EmulateIE7。

在 IIS 上实现 META 切换
在 Apache 上实现 META 切换

如果使用 Web 服务器指定了默认文本兼容性模式,则可通过在特定的网页中指定其他文本兼容性模式来覆盖该设置。在该网页中指定的模式优先于由服务器指定的模式。

使用脚本确定文本兼容性模式

要使用 Windows Internet Explorer 8 确定网页的文本兼容性模式,请使用 document 对象的 documentMode 属性。例如,将以下内容键入到 Windows Internet Explorer 8 的地址栏中,可显示当前网页的文本模式。

javascript:alert(document.documentMode);

documentMode 属性可返回与页面的文本兼容性模式相对应的数值。例如,如果所选页面支持 IE8 模式,则 documentMode 会返回 8。

注意:在 Windows Internet Explorer 6 中引入的 compatMode 属性已不受支持,取而代之的是在 Windows Internet Explorer 8 中引入的 documentMode 属性。当前使用 compatMode 的应用程序仍然可以在 Windows Internet Explorer 8 中运行;但是,它们已更新为使用 documentMode。

如果希望使用 JavaScript 确定文本的兼容性模式,请在其中包含支持 Windows Internet Explorer 旧版本的代码,如以下示例所示。

JScript:

engine = null;  if (window.navigator.appName == "Microsoft Internet Explorer")  {         // 这是一个 IE 浏览器。引擎处于哪种模式下?if (document.documentMode) // IE8           engine = document.documentMode; else // IE 5-7 {            engine = 5; // 假设为 quirks 模式;除非另外证实是其他模式            if (document.compatMode){              if (document.compatMode == "CSS1Compat")                  engine = 7; // 标准模式            }         }         // 引擎变量现在包含文本兼容性模式。  }

此处使用的文档对象表示给定浏览器窗口中的 HTML 文档,可用来检查、修改 HTML 文档或将内容添加到该文档以及处理该文档中的事件。

使用条件注释确定文本兼容性模式

如果只需要适应 Windows Internet Explorer,以下代码示例说明了如何使用条件注释来适用于当前版本或旧版本。

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">  <html>         <head>            <title>测试页</title>            <meta http-equiv="X-UA-Compatible" content="IE=8"/>           <!--[if gte IE 8]>            <style type="text/css">            body {color:#0000ff;}            </style>            <![endif]-->            <!--[if lt IE 8]>            <style type="text/css">            body {color:#000000;background-color:#ffffff; }           </style>            <![endif]-->         </head>         <body>            <h1><!--[if gte IE 8]>第 1 章。<![endif]-->第一章</h1><h1>            <!--[if gte IE 8]>第 2 章。<![endif]--> 第二章</h1>将看到任何版本的文本。</body>

X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与 content="IE=7"在无论页面是否包含<!DOCTYPE>指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content="IE=EmulateIE7"模式遵循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。

目前IE8尚在测试版中,所以为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在页面的header的meta标签中加入如下代码:
<meta http-equiv="X-UA-Compatible" content="IE=7" />  这样我们才能使得页面在IE8里面表现正常!

转载于:https://www.cnblogs.com/tnnyang/p/4123523.html

META http-equiv=X-UA-Compatible content=IE=EmulateIE7相关推荐

  1. NLTK基础教程学习笔记(二)

    Python基础: 字典(dictionary)也是最常用到的一种数据结构.在其他语言中被称为关联数组/存储.字典是一种键值索引型的数据结构,其索引键可以是一种不可变的类型,例如字符串和数字常被用来充 ...

  2. NLTK01 《NLTK基础教程--用NLTK和Python库构建机器学习应用》

    01 关于NLTK的认知 很多介绍NLP的,都会提到NLTK库.还以为NLTK是多牛逼的必需品.看了之后,感觉NLTK对实际项目,作用不大.很多内容都是从语义.语法方面解决NLP问题的.感觉不太靠谱. ...

  3. 标记meta http-equiv = X-UA-Compatible content = IE=edge,chrome=1

    为什么80%的码农都做不了架构师?>>>    陌生标记标记一: < meta http-equiv = "X-UA-Compatible" content ...

  4. IE 8兼容:meta http-equiv=X-UA-Compatible content=IE=edge / X-UA-Compatible的解释

    前言:9月份开始了,大四也真正的到来了.深知自己网页布局还有很大的缺陷,接下来打算从工作中抽时间出来模仿着一些互联网公司的网站.顺便把基础理论知识打好. 第一个目标:小米官网:后续会把练习的项目放到g ...

  5. 设置双核浏览器的浏览模式meta name=“renderer” content=“webkit|ie-comp|ie-stand”

    今天上知乎看到有人在上邀请我回答这样一个问题:如果访问的页面中有 CSS3 代码,双核浏览器会自动切换到 Webkit 内核吗?http://www.zhihu.com/question/200946 ...

  6. meta http-equiv=X-UA-Compatible content=IE=7 /意思是将IE8用IE7进行渲染,使网页在IE8下正常...

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  7. meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1 /

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  8. meta http-equiv=X-UA-Compatible content=IE=edge / 的说明

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  9. 详解 meta http-equiv = X-UA-Compatible content = IE=edge,chrome=1 /

    < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" /> 这是个是 ...

最新文章

  1. linux 上配置swoole
  2. mysql 外键有啥用途_Mysql外键是什么?有哪些用处?(图文+视频)
  3. mysql平台workb_MySQL分布式事务
  4. 数据分析工具有多好用?Yonghong Z-Suite V8.8 发布,实现20余项功能新改变!
  5. CentOS6.3 重启后/etc/resolv.conf 被还原解决办法
  6. 机器学习笔记(十三)——隐马尔科夫模型
  7. 倒了血霉!先是贾跃亭后有罗永浩,被拖欠4400多万,最惨公司无疑了
  8. Windows下JDK开发环境搭建及环境变量配置
  9. 斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”
  10. 微软官宣 Windows 11:全新 UI、原生支持安卓 App、应用商店 0 抽成
  11. 信息安全工程师考试大纲(2016)
  12. 湖南大学计算机专业毕业生待遇,分享湖南大学2017年毕业生就业基本情况及质量薪资...
  13. ie11无法播放html,IE11无法显示flash?IE11无法播放视频的解决方法
  14. power oj 2866 青春猪头少年不做怀梦美少女的梦
  15. yolov5 训练结果解析
  16. oracle数据库经典练习题及答案
  17. 信息平台课件服务器,《CDN平台介绍v》PPT课件.ppt
  18. 像素、移动端网页——CSS
  19. Python WOE的使用
  20. k-means算法进行员工培训方向分组

热门文章

  1. mysqladmin 设置用户名初始密码报错you need the SUPER privilege for this operation
  2. 获取验证码canvas
  3. 百会CRM教你在大数据平台中做精准营销
  4. ASP.NET MVC增删改查
  5. centos7 + VMware Workstation Pro
  6. (转)java redis使用之利用jedis实现redis消息队列
  7. 菲波拉契数列(传统兔子问题)
  8. http协议网络编程
  9. CodeForces 359D (数论+二分+ST算法)
  10. 分析 C# 2.0 新特性 -- 范型(Generics)