条件注释是一种专用的(因此是非标准的)对常规HTML注释的Microsoft扩展。顾名思义,条件注释能够根据条件(比如浏览器版本)显示代码块。尽管是非标准的,条件注释在其他所有浏览器看来是常规注释,因此本质上是无害的。因此条件注册通常被看作处理IE特有的bug的最好方法。条件注释在Windows上的IE 5中首次出现,并且得到了Windows浏览器的所有后续版本的支持。
条件注释的基本结构和HTML的注释(<!– –>)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。
要想将特定的样式表提供给IE5和更高的所有版本,那么可以在HTML文档的开头放置以下代码:
<!--[if IE]> <link href="ie.css" rel="stylesheet" type="text/css" /> <![endif]-->
除了IE浏览器,其他浏览器只会看到一些被注释掉的文本。
可使用如下代码检测当前IE浏览器的版本(注意:在非IE浏览器中是看不到效果的)
<!--[if IE]>
<h1>您正在使用IE浏览器</h1>
<!--[if IE 5]>
<h2>版本 5</h2>
<![endif]-->
<!--[if IE 5.0]>
<h2>版本 5.0</h2>
<![endif]-->
<!--[if IE 5.5]>
<h2>版本 5.5</h2>
<![endif]-->
<!--[if IE 6]>
<h2>版本 6</h2>
<![endif]-->
<!--[if IE 7]>
<h2>版本 7</h2>
<![endif]-->
<![endif]-->
常用判断语句
<!–[if !IE]>除IE外都可识别<![endif]–>
<!–[if IE]> 所有的IE可识别 <![endif]–>
<!–[if IE 5.0]> 只有IE5.0可以识别 <![endif]–>
<!–[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]–>
<!–[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![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]–>
注释:
lte:就是Less than or equal to的简写,也就是小于或等于的意思。
lt :就是Less than的简写,也就是小于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
! :就是不等于的意思,跟JavaScript里的不等于判断符相同
有人会试图使用<!–[if !IE]>来定义非IE浏览器下的状况,但注意:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下非但不是执行该条件下的定义,而是当做注释视而不见。
正常就是默认的样式,对IE浏览器需要特殊处理的,才进行条件注释。