sbf123官网

通过在网页中指定文本模式

  • IE
    的几种兼容模式
  • 在 IE8 中使用文本兼容模式

IE8 目前还是 beta
版本,所以此文也许会与正式版本不兼容,但据微软的作风来看,可能性不大。

IE8 最大限度地支持 W3C
的标准,但并没有放弃对之前的网页的兼容,所以它支持多种模式,如何让 IE8
知道该使用哪种模式呢?在 IE8
中支持文本兼容性模式,通过在网页中指定文本模式,让 IE8
知道该使用哪种模式。

具体做法,就是在 HEAD 区增加一个 META 元素。

<meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ />

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

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

其他方式

除了直接在网页中使用 META 外,还有其他方式来实现兼容。

为整个站点配置 META

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

使用 JavaScript 脚本

document.compatMode,它有两种可能的返回值:BackCompat 和
CSS1Compat。用其返回值表示当前处于哪种模式,然后再根据模式使用不同的脚本,这个属性在
Firefox、Chrome 中也是有效的,但并没有必须在 Firefox、Chrome
中使用这个属性,因为他们对代码的解释不像 IE
各个版本样那么复杂。还有,非常不幸的是:在 IE8
中竟然没有了这个属性,而是用的
document.documentMode,所以代码应该是这样:

if (document.documentMode)
{
    //IE8
}
else if (document.compatMode)
{
    //IE 5 – 7
    if (document.compatMode == “CSS1Compat”)
    {
        //标准模式(standards mode)
    }
    else
    {
        //兼容模式(quirks mode)
    }
}

使用条件注释

<!–[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]–>

我并不推荐这个,主要是把代码搞得太复杂了。

最后,关于 IE8 的开发者资源,您可以参见

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章