无论是google还是百度搜到的if IE条件注释用法,排在前面的几个搜索结果文章都是有错误和漏洞的,而这些漏洞和错误导致我一度误以为有些IE条件注释已经失效了,即使不是失效,也令我很费解。今天抽时间查阅了些老外写的东西,并且都试验了一遍。发现给我造成费解的原因是那些文章大多都是抄来的,没有经过亲自试验,在复制来复制去的过程中就把某些关键的地方弄错了:( 现将正确的if IE条件注释用法总结一下,以便以后使用:
运算符 | 示例 | 说明 |
---|---|---|
! | [if !IE] | 非运算符。该例子表示所有的非IE浏览器(注:如果是判断带版本号的非,需要加子表达式,即括号,如:[if !(IE 7)] 表示非IE7) |
lt | [if lt IE 7] | 小于运算符,如果第一个参数小于第二个参数,则返回true。该例子表示小于IE7(不等于IE7) |
lte | [if lte IE 7] | 小于或等于运算符,如果第一个参数是小于或等于第二个参数,则返回true。该例子表示小于或等于IE7 |
gt | [if gt IE 7] | 大于运算符,如果第一个参数大于第二个参数,则返回true。该例子表示大于IE7(不等于IE7) |
gte | [if gte IE 7] | 大于或等于运算符。如果第一个参数大于或等于第二个参数,则返回true。该例子表示大于或等于IE7 |
( ) | [if !(IE 7)] | 子表达式运算符。该例子表示小于IE8(不包括IE8) |
& | [if (gt IE 6)&(lt IE 8)] | 与运算符,如果所有的子表达式计算结果为true,返回true。该例子表示大于IE6并且小于IE8,跟[if IE 7]结果是一样的 |
| | [if (IE 6)|(IE 7)] | 或运算符,如果所有的子表达式计算结果中有一个为true,返回true。该例子表示如果是IE6或者IE7 |
常用例子:
- <!--[if IE]> 仅IE浏览器可识别 <![endif]-->
- <!--[if IE 6]> 仅IE6可识别 <![endif]-->
- <!--[if lt IE 7]> IE7以下(不包括IE7)可识别 <![endif]-->
- <!--[if lte IE 7]> IE7及IE以下可识别 <![endif]-->
- <!--[if gte IE 7]> IE7及IE以上可识别 <![endif]-->
- <!--[if !IE]><!--> 非IE浏览器可识别 <!--<![endif]-->
- <!--[if !(IE 7)]><!--> 非IE7可识别 <!--<![endif]-->
注意:
- 1、”IE”与版本号之间是有一个空格的,即”IE7″这样的写法是错误的;
- 2、非运算符的写法和其他的不太一样,请认真看清楚。