IE兼容性标签和条件注释

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" />
<title>无标题文档</title>

</head>
<body>

</body>
</html>

上文是一个简单的HTML文件里面的代码,下面我们来分析一下元信息中的 X-UA-Compatible

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=9,IE=8" />

上面这段代码的意思是强制开启兼容性视图,即以IE10、IE9、IE8的文档模式来解析,高于IE10时候以IE10来解析,低于IE8时候以原始版本解析。

在几乎没有用到IE新特性的时候直接把兼容性开到最低,比如需要兼容IE10、9、8的时候直接强制兼容性视图为IE8。而下面的情况下如果是IE10则以IE10解析,IE9则以IE8解析,可以发现标签中处于IE10和IE8之间的9被剔除掉了。

<meta http-equiv="X-UA-Compatible" content="IE=10,IE=8" />

在公司项目开发插件的过程中,由于公司有大华的相机设备,我也用了一下,发现在IE11下面无法正常使用,手动F12将兼容性视图调整为IE10,又可以正常使用。

不过开发的时候又有谁能提前想到IE11已经走向标准化,而不再是简单的IE内核,这里不再去深论这个话题。

讲讲第二个话题IE条件注释(IE5引入,目前IE10及10以上的版本不再支持条件注释)

由于我的IE已经是11的版本了,这里并没有对条件注释进行详细的测试,内容参考于《JavaScript权威指南6》第13章。有兴趣的朋友可以自己去测试。

html注释:

<!--[if IE 11]>
</br>this is ie11
<![endif]-->

<!--[if gte IE 7]>
</br>this is >= ie7
<![endif]-->

<!--[if IE]>
</br>this is IE
<![endif]-->

<!--[if !IE]> <-->
!IE
<!--> <![endif]-->

javascript注释:

<script type="text/javascript">
/*@cc_on
 @if (@_jscript)
     // 该代码位于一条JS朱室内但在IE中执行它
     alert(‘In IE‘);
 @end
 @*/

 /*@cc_on
 @if (@_jscript)
    // 该代码位于一条JS朱室内但在IE中执行它
     alert(‘In IE‘);
 @else*/
     alert(‘is not in IE‘);
 /*@end
 @*/
</script>

在非IE下 弹出消息框 is not in IE,在IE下则弹出了对话框 In IE。这里用到了能力检测

@_jscript

是IE的javascipt解释器,总是为true(脚本中变量都能转换为0或1,true or false,表示存在这个变量,存在这种能力)

建议开发者在开发过程中尽量用能力检测代替浏览器检测。

IE兼容性标签和条件注释

时间: 2024-11-09 02:02:22

IE兼容性标签和条件注释的相关文章

IE条件注释可以怎么玩

如果玩过条件注释的,可以忽略以下基础介绍. IE条件注释(Conditional comments)是IE浏览器私有的代码,是一个类似IF判断的语法注释块,IE5之上支持. 代码看起来是这样的 !--[if IE 6]> 你正在使用IE6 ![endif]-->复制代码 他的语法是一个普通的HTML注释 !– comments –>,分支块以 [if 条件(conditional)]> 开始 ![endif]结束.条件和JS中的if很类似,布尔值类型,可以把浏览器特性作为条件,比如

IE条件注释详解.

IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决办法而且还能通过W3C的效验. 让我们举几个例子来看看: 1.只有IE才能识别 1 <!--[if IE]> 2 <link type="text/css" rel="stylesheet" href="my.css" />

关于IE条件注释

本文翻译自此篇文章.翻译纯属业余. 许多网站为了确保他们的站点能够在不同的浏览器上有不同的显示效果而使用特征检测,一些传统的网站使用其他技术,诸如在服务器或客户端上使用脚本去检测浏览器类型.在这里我们引入比使用脚本检测浏览器更有优势的方法--条件注释.条件注释可以轻易地更早发现早期的IE版本.条件注释是层叠样式表(CSS)用于区分IE特定版本的首选方式. 重要提示 自IE10起,标准模式不再支持条件注释.而是采用特征检测给浏览器不支持的功能来提供备用策略.有关标准模式的详细信息,请参阅定义文档兼

IE条件注释

条件注释是IE专门提供的一种语法,其他浏览器会将其作为注释而忽略这些语句. 作用:根据不同的IE版本加载对应的CSS或者JS文件,甚至css代码和html代码. 重要提示 自IE10起,标准模式不再支持条件注释.而是采用特征检测给浏览器不支持的功能来提供备用策略.有关标准模式的详细信息,请参阅定义文档兼容性. 术语 熟悉下列术语有助于你学习文档兼容性. 名词 描述 expression 由运算符.特征和(或)值组合形成一个条件语句 downlevel browser 任何浏览器除了IE5+,其他

CSS条件注释

由于浏览器版本的不同,对CSS里某些元素的解释也不一样,针对浏览器版本不同而选择不同CSS的代码,其实我们还可以利用条件注释的方法来达到类似的目的,什么是条件注释,在此简单介绍一下,无非就是一些if判断啦,呵呵,但这些判断不是在脚本里执行的,而是直接在html代码里执行的,下面来介绍一下使用方法吧. <!--[if XXX]>这里是正常的html代码<![endif]–>这里XXX是一些特定的东东,在此列表几个出来,详细介绍各自的含义:<!–[if IE]> / 如果浏

用条件注释判断浏览器版本解决页面兼容问题

在IE8.IE9上可能好好的,当我们在IE6.IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,那么如何解决兼容问题呢,本文就为大家一一道来对于浏览器兼容问题,我们应该碰到很多了,在平时写一些页面时,在IE8.IE9上可能好好的,当我们在IE6.IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,作为一名前端开发人员,这是最让人发疯的问题了,那么我们该怎么解决这些问题呢? 首先,我们写的页面在不同的浏览器上之所以会出现表现不同的问题,是因

用条件注释判断浏览器版本,解决兼容问题

对于浏览器兼容问题,我们应该碰到很多了,在平时写一些页面时,在IE8.IE9上可能好好的,当我们在IE6.IE7或者是其他的浏览器上再浏览这些页面时,可能会发现我们的页面已经面目全非了,作为一名前端开发人员,这是最让人发疯的问题了,那么我们该怎么解决这些问题呢? 首先,我们写的页面在不同的浏览器上之所以会出现表现不同的问题,是因为不同的浏览器在解析页面时,他们所遵循的规则并不是完全相同的.比如IE,不同的版本解析都不同,何况是不同的浏览器厂商,不同的内核呢.但是我们在遇到兼容性问题时,应该首先检

关于HTML条件注释你可能不知道的一些事儿

最近经常看到类似这样的HTML代码片段,很多前端开发人员应该都熟悉: 1 <!--[if lt IE 7]>      <html class="ie6"> <![endif]-->2 <!--[if IE 7]>         <html class="ie7"> <![endif]-->3 <!--[if IE 8]>         <html class="

IE的有条件注释

IE的有条件注释是一种专有的(因此是非标准的).对常规(X)HTML注释的Miscrosoft扩展.顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块(不一定就是css,也可以是html代码,甚至是JavaScript代码). IE的有条件注释是一种专有的(因此是非标准的).对常规(X)HTML注释的Miscrosoft扩展.顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块.尽管是非标准的,但是有条件注释对于其他所有浏览器作为常规注释出现,因此本质上是无害的.有条件