很多人认为IE条件注释很糟糕,就因为它是微软发明的私有特性,用来给开发者为特定版本的IE指定HTML、CSS和JavaScript。这些条件注释可能被用于任何不正当的用途,代表了那些一定是骷髅发明的“特性”(他肯定还发明了IE行为、IE6渲染引擎和肥皂剧)。
不管怎么说,它在网页开发的实践中还是很有用的,特别是在你想通过CSS为旧版IE修补渲染错误或想让浏览器避免那些不需要的修补以节省带宽和HTTP请求时。它看起来是这样的,在我的模板中也引入了这些代码:
<!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"> </script> <![endif]-->
整个结构由一个标准的HTML注释包裹,因此任何非IE浏览器很容易就直接跳过这一整段。而IE会将其当做一个if判断来对待,并在符合第一行的条件时运行里面的代码。在本例中,条件逻辑是if lt IE 9,意思是“如果版本低于IE9”——因此对于任何低于IE9的IE来说其内部的脚本就会被执行。[endif]部分标出了条件内容的结束位置。
注意:你可以随意在HTML中的任意位置使用这些IE条件判断。而下列可能则是你最常用到的:
同样,还可以使用gt和gte(“大于”和“大于或等于”),但你可能很少会用到,大多数时候你可能出于以下的目的来使用IE条件判断:
注意:IE10完全忽略条件注释,因此你不能用它专门地向IE10引入代码。这不是个坏消息:IE10有着非常好的标准支持性,称得上是一款现代浏览器,因此你不再需要使用条件注释。