条件注释是IE专门提供的一种语法,其他浏览器会将其作为注释而忽略这些语句。
作用:根据不同的IE版本加载对应的CSS或者JS文件,甚至css代码和html代码。
重要提示 自IE10起,标准模式不再支持条件注释。而是采用特征检测给浏览器不支持的功能来提供备用策略。有关标准模式的详细信息,请参阅定义文档兼容性。
术语
熟悉下列术语有助于你学习文档兼容性。
名词 | 描述 |
expression | 由运算符、特征和(或)值组合形成一个条件语句 |
downlevel browser | 任何浏览器除了IE5+,其他低版本浏览器不支持条件注释 |
uplevel browser | IE5+支持条件注释 |
downlevel-hidden | 低版本浏览器会忽视条件注释。如果表达式为true时,IE5+会渲染HTML页面 |
downlevel-revealed | 低版本浏览器经过条件注释的解析。如果表达式为true时,IE5+会渲染HTML页面 |
使用条件注释的好处
下列表格中展示了基本语法类型,第一个注释是最基本的HTML注释。表格比较并展示每一种条件注释的不同语法的用法。
注释类型 | 语法或可能的值 |
HTML标准注释 | <!-- Comment content --> |
downlevel-hidden | <!--[if expression]> HTML <![endif]--> |
downlevel-revealed | <![if expression]> HTML <![endif]> |
expression是由功能、操作符和值组成的。下表列出了支持的功能,并介绍了每个功能支持的值。
Item | Example | 注释 |
---|---|---|
IE | [if IE] | 对应IE的版本功能来查看该网页 |
value | [if IE 7] | 一个整数或浮点标号对应于浏览器的版本。如果是与版本号匹配的浏览器版本,则返回true。 |
WindowsEdition | [if WindowsEdition] | Windows 7的IE8。 "WindowsEdition"对应Windows的版本功能。 |
value | [if WindowsEdition 1] | 整数对应Windows版本。如果正在使用的的值相匹配,则返回true。 |
true | [if true] | 结果始终为true. |
false | [if false] | 结果始终为false. |
下表描述了可用于创建条件表达式的运算符。
Item | Example | 注释 |
---|---|---|
! | [if !IE] | NOT运算符.。被放置在要素、运算符或表达式之前,扭转表达式的布尔含义。 |
lt | [if lt IE 5.5] | 小于运算符。如果第一个参数小于第二个参数,返回true。 |
lte | [if lte IE 6] | 小于或等于运算符。如果第一个参数小于或等于第二个参数,返回true。 |
gt | [if gt IE 5] | 大于运算符。如果第一个参数大于第二个参数,返回true。 |
gte | [if gte IE 7] | 大于或等于运算符。如果第一个参数大于或等于第二个参数,返回true。 |
( ) | [if !(IE 7)] | 子表达式运算符。配合使用布尔运算符来创建更复杂的表达式。 |
& | [if (gt IE 5)&(lt IE 7)] | AND运算符。如果所有的子表达式的值为真,返回true。 |
| | [if (IE 6)|(IE 7)] | OR运算符。如果任何一个子表达式的计算结果为true,返回true。 |
Downlevel-hidden条件注释示例:
<!--[if IE 8]>
<p>Welcome to Internet Explorer 8.</p>
<![endif]-->
常用例子:
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 仅IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lte IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->
<!--[if IE]> 仅IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lte IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->