条件注释判断浏览器

2017年3月23日11:22:11条件注释判断浏览器已关闭评论 11
摘要

在IE8、IE9上WEB可能好好的,当我们在IE6、IE7或者是其他的浏览器上再浏览这些WEB页面时,可能会发现我们的页面已经面目全非了,那么如何解决兼容问题呢?

IE8、IE9上WEB可能好好的,当我们在IE6、IE7或者是其他的浏览器上再浏览这些WEB页面时,可能会发现我们的页面已经面目全非了,那么如何解决兼容问题呢?

首先,我们写的页面在不同的浏览器上之所以会出现表现不同的问题,是因为不同的浏览器在解析页面时,他们所遵循的规则并不是完全相同的。比如IE,不同的版本解析都不同,何况是不同的浏览器厂商,不同的内核呢。但是我们在遇到兼容性问题时,应该首先检查我们自己写的代码,看看是不是自己的问题,然后再去追究浏览器的问题。还有,在遇到兼容性问题时,不要动不动就用CSS Hack技术,因为CSS Hack技术并不是W3C所推崇的,因此,不到万不得已,尽量不要用。

条件注释判断浏览器

<!–[if !IE]><!–[if IE]><!–[if lt IE 6]><!–[if gte IE 6]> 条件注释判断浏览器使用方法;

说明:

<!–[if !IE]><!–> 除IE外都可识别 <!–<![endif]–>

<!–[if IE]> 所有的IE可识别 <![endif]–>

<!–[if IE 6]> 仅IE6可识别 <![endif]–>

<!–[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]–>

<!–[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]–>

<!–[if IE 7]> 仅IE7可识别 <![endif]–>

<!–[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]–>

<!–[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]–>

<!–[if IE 8]> 仅IE8可识别 <![endif]–>

<!–[if IE 9]> 仅IE9可识别 <![endif]–>

项目范例说明

![if !IE] The NOT operator. This is placed immediately in front of the feature, operator, or subexpression to reverse the Boolean meaning of the expression.

NOT运算符。这是摆立即在前面的功能,操作员,或子表达式扭转布尔表达式的意义。

Lt [if lt IE 5.5] The less-than operator. Returns true if the first argument is less than the second argument.

小于运算符。如果第一个参数小于第二个参数,则返回true。

Lte [if lte IE 6] The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument.

小于或等于运算。如果第一个参数是小于或等于第二个参数,则返回true。

Gt [if gt IE 5] The greater-than operator. Returns true if the first argument is greater than the second argument.

大于运算符。如果第一个参数大于第二个参数,则返回true。

Gte [if gte IE 7] The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument.

大于或等于运算。如果第一个参数是大于或等于第二个参数,则返回true。

( ) [if !(IE 7)] Subexpression operators. Used in conjunction with boolean operators to create more complex expressions.

子表达式运营商。在与布尔运算符用于创建更复杂的表达式。

& [if (gt IE 5)&(lt IE 7)] The AND operator. Returns true if all subexpressions evaluate to true

AND运算符。如果所有的子表达式计算结果为true,返回true

| [if (IE 6)|(IE 7)] The OR operator. Returns true if any of the subexpressions evaluates to true.

OR运算符。返回true,如果子表达式计算结果为true。

<!–[if lt IE 9]>

加载CSS1

<!–[else]>

加载CSS2

<![endif]–>

这样有效是有效,但是用HTML VALIDATOR里,报错,因为这个不符合XHTML 1.1的规范,

如果把ELSE语句去掉,则正确.

方法1:

加载CSS2

<!–[if lt IE 9]>

加载CSS1(可以把要重写的写在这里).

<![endif]–>

ITBIJI