判断IE版本的HTML语句详解
eg: <!-- [if IE 9]> 仅IE9可以识别<![endif]-->
由于之前经常会在网页的HTML里面看到形势如[if ite IE 9]...[endif] 的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断的语句的规则是什么呢?请看下文:
注意:以下用法不支持IE10 和 IE11
<!--[if !IE]><!-->除IE外的都可以识别(不是IE)<!--><![endif]-->
<!--[if IE]> 所有IE都可以识别<![endif]-->
<!--[if IE 6]>仅IE6可以识别<![endif]-->
<!--[if It IE 6]>IE6及IE6以下版本可识别<![endif]-->
<!--[if gte IE 6]>IE6及IE6以上版本可识别<![endif]-->
以此类推需要兼容ie几就把6换成需要兼容的版本
项目 | 范例 | 说明 |
---|---|---|
! | <!--[if !IE]><!--> |
NOT运算符。它直接放在特征、运算符或子表达式的前面,以反转表达式的布尔意义 |
It | [if It IE 5] |
小于运算符。如果第一个参数小于第二个参数,则返回true |
lte | [if Ite IE 6] |
小于或等于运算。如果第一个参数小于或等于第二个参数,则返回true |
gt | [if gt IE 6] |
大于运算符。如果第一个参数大于第二个参数,则返回true |
gte | [if gte IE 6] |
大于或等于运算。如果第一个参数大于或等于第二个参数,则返回true |
() | [if !(IE 7)] |
子表达式运算符,与布尔运算符结合使用以创建更复杂的表达式 |
& | [if (gt IE 6)&(lt IE 7)] |
AND运算符。如果所有的子表达式计算结果为true,返回true |
I | [if (IE 6)1(IE 7)] |
OR运算符。返回true,如果子表达式计算结果为true |
上述 | 为or运算符,|: [if (IE 6)|(IE 7)]
<!--[if lt IE 9]>
加载CSS1
<!--[else]>
加载CSS2
<![endif]-->
上述这样有效,但用HTML VALIDATOR里报错,因为这个不符合XHTML 1.1的规范,如果把ELSE语句去掉,则正确
方法:
加载CSS2
<!--[if lt IE 9]>
加载CSS1(可以把要重写的写在这里).
<![endif]-->
<!--[if lte IE 6]>
IE6及其以下版本可见
<![endif]-->
那如果当前的浏览器是IE,但版本比IE5还低,该怎么办呢,可以使用<!–[if ls IE 5]>,当然,根据条件注释只能在IE5+的环境之下,所以<!–[if ls IE 5]>根本不会被执行。 lte:就是Less than or equal to的简写,也就是小于或等于的意思。 lt :就是Less than的简写,也就是小于的意思。 gte:就是Greater than or equal to的简写,也就是大于或等于的意思。 gt :就是Greater than的简写,也就是大于的意思。 ! : 就是不等于的意思,跟javascript里的不等于判断符相同。
网友评论