- 浏览: 63287 次
- 性别:
- 来自: 大连
文章分类
最新评论
对于 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;
background-color:#000000;
}
</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>
本文转载自:http://www.cnblogs.com/0000/archive/2009/11/01/1593851.html
本文档将介绍由 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;
background-color:#000000;
}
</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>
本文转载自:http://www.cnblogs.com/0000/archive/2009/11/01/1593851.html
发表评论
-
Jquery实现表格行的动态增加与删除
2014-05-29 08:45 1263<!DOCTYPE html PUBLIC " ... -
CSS3伪类选择器
2014-04-18 09:32 619CSS的伪类语法和别的语 ... -
Jquery实现选中左边的下拉菜单点击按钮之后跑右边
2014-04-15 14:34 1046script代码: <script type=" ... -
html之marquee详解
2014-03-28 10:07 645该标签不是HTML3.2的一部分,并且只支持MSIE3以后内核 ... -
Html中a标签的四个属性 link ,visited , hover ,active 是有顺序的! LVHA
2014-03-25 15:39 19081。html中a标签的四个属性书写是有顺序的,如果顺序不对,显 ... -
修改360浏览器内核
2014-03-10 17:19 1945浏览器内核控制Meta标签说明文档 背景介绍 由于众所周知 ... -
实现DIV层内的文字垂直居中
2014-03-07 14:03 769有时候,为了网页设计的美观,需要把div+css设计的页面里的 ... -
bootstrap时间控件
2014-03-06 13:27 1226<!DOCTYPE html PUBLIC " ... -
修改IE浏览器默认的文档模式
2014-02-28 13:26 1926开始运行输入C:\Windows\System32\gpedi ... -
网页制作中Iframe自适应高度的解决办法
2013-12-27 10:14 593进行网页设计时,由于网站的海量信息以及标准化的网页制作模式 ... -
Jquery获取当前屏幕的宽度、高度
2013-12-05 14:48 956<script type="text/java ... -
iframe,frameset区别
2013-12-05 10:24 577■ 框架概念 : 所谓框架便是网页画面分成几个框窗,同时取得 ... -
顶部浮动
2013-11-29 09:37 446<!DOCTYPE html PUBLIC " ... -
js+JQuery实现返回顶部功能
2013-11-18 11:05 549很多网站上都有返回顶部的效果,本文阐述如何使用jquery实现 ... -
转 CSS hack:针对IE6,IE7,firefox显示不同效果
2013-09-05 13:55 1005CSS hack:针对IE6,IE7,firefox显示不同效 ... -
white-space:
2013-08-30 10:57 508定义和用法 white-space 属性设置如何处理元素内的空 ... -
通过css将直角矩形变为圆角矩形
2013-08-30 10:56 1229{border-radius:6px 6px 0 0} -
整合IE7与其他IE版本的兼容
2013-08-21 09:39 602<!--[if lte IE 7]> <d ... -
常见浏览器兼容性问题与解决方案css篇
2013-08-12 17:17 780所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同 ... -
如何在页面中设置IE浏览器的文档模式
2013-08-04 12:58 1106如何在页面中设置IE浏 ...
相关推荐
为了解决这个问题,可以在网站头部添加`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">`来强制IE8使用IE7的标准模式。而`<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9">`则进一步扩展了...
- `IE=EmulateIE7`:强制IE8使用IE7的渲染模式,适用于那些为IE7优化的网站。 - `IE=EmulateIE9`:即使在IE8或更低版本的IE中,也强制使用IE9的渲染模式。 ### 实施步骤 1. **服务器端配置**:如果你的网站托管在...
在.NET项目中,解决IE8排版混乱问题的关键在于正确使用`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>`这样的元标签。这个标签的作用是指示IE8(以及更高版本的IE)模拟特定版本的IE进行渲染,以...
这行代码的作用是告诉IE浏览器以IE7的标准模式来解析和渲染网页,即使用户使用的是更老或更新的IE版本。这样做的目的是确保网页在不同版本的IE下表现一致。例如,如果你发现网页在IE8及更高版本中出现问题,而希望其...
`<meta http-equiv="X-UA-Compatible" content="IE=7">` 这一行代码是针对Internet Explorer 8(IE8)浏览器的一个特定设置,它的作用是强制IE8以Internet Explorer 7(IE7)的标准模式来渲染网页内容。在IE8之前,...
- `<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>` 这行代码的作用是告诉IE浏览器使用IE7的渲染引擎来呈现当前网页。其中,`http-equiv`属性相当于HTTP头部字段,`X-UA-Compatible`是特定于IE的一...
这个`<meta>`标签告诉IE使用IE7的渲染引擎来解析页面,即使用户正在使用的是更新的版本,如IE8。需要注意的是,此方法仅对当前页面有效,且必须在其他CSS样式定义或链接之前插入,否则可能无法产生预期效果。 其次...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ``` 这行代码告诉IE8以IE7的渲染模式来显示网页,从而解决了可能因IE8标准模式下新特性引起的兼容性问题。这种方法适用于单个页面,只需将代码插入...
1. **使用Meta标签**:如前所述,在`<head>`标签中加入`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">`,使IE8向下兼容至IE7模式。 2. **CSS Hack**:针对不同浏览器的特性编写特定的CSS规则,如...
例如,`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">`会让IE8模仿IE7的行为。 4. **条件注释**:IE8支持条件注释,这是一种在HTML中针对IE特定版本插入代码的特殊方式。这部分可能包含如何使用...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ``` 对于服务器配置,可以在`web.config`文件中设置: ```xml <?xml version="1.0" encoding="utf-8"?> <add name="X-UA-...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ``` 此元标签告诉IE8浏览器模拟IE7的渲染引擎,而不是使用其默认的标准模式。当IE8读取到这个标签,它会调整其渲染引擎以匹配IE7的行为。 在问题...
这个`<meta>`标签告诉IE使用特定的兼容性模式,`IE=EmulateIE8`意味着即使在IE10这样的较新版本中,也会模拟IE8的行为。这样可以确保Ckeditor4在这些浏览器中按照预期工作,同时解决了菜单选项无法展开的问题。 在...
- 强制IE8使用IE7模式:`IE=EmulateIE7` - 强制IE8使用IE6模式:`IE=EmulateIE6` - 强制IE8使用IE5模式:`IE=5` 此外,还可以指定一个版本列表,由浏览器自行选择最合适的兼容模式: ```html <meta http-equiv="X-...
总结来说,`<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />`这一行代码是解决IE8与IE7兼容性问题的一种方法,它能让IE8模拟IE7的渲染行为。尽管这种方法在某些情况下是必要的,但长远来看,遵循Web...
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ``` 这种方法适用于那些不需要IE8所有新特性,但又希望在IE8中正常显示的网站。 ##### 方法二:通过服务器配置 如果需要在整个网站范围内设置IE...
然而,如果某些页面在较新的IE版本中出现问题,可以回退到`IE=EmulateIE7`或`IE=EmulateIE8`,这样浏览器会根据文档类型声明(`<!DOCTYPE>`)来模拟相应的渲染模式。 `Emulate`模式下,浏览器会更注重`<!DOCTYPE>`...
在某些情况下,如需确保与旧版IE的兼容,可考虑使用 `IE=EmulateIE7` 或其他特定版本的指令。然而,随着现代浏览器的普及,这种兼容性问题逐渐减少,开发者应该尽量遵循Web标准并测试在多种浏览器环境下的表现。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ``` 这段代码告诉IE8使用IE7的渲染引擎来解析和显示网页内容,从而避免因标准模式下的不兼容问题而产生的布局混乱。这种方式对于那些没有进行标准...
这种做法源于IE8支持多种文档模式,其中“IE=EmulateIE7”指令可以让IE8以IE7的兼容性模式来渲染网页,从而尽可能地避免在IE8中出现的兼容性问题。这行代码的全貌是<meta http-equiv="X-UA-Compatible" content="IE=...