IE中的条件注释
2014-05-04 08:49
330 查看
前提
条件注释只能用于Explorer 5+ Windows(以下简称IE).如果你安装了多个IE,条件注释(Conditional comments)将会以最高版本的IE为标准(一般为IE 6)。
我听说(但没测试过),当在条件注释中使用了小数点,且只安装了IE5.0的时候,将会产生一个不正确的判断。
条件注释只能在windows Internet Explorer(以下简称IE)下使用,因此我们可以通过条件注释来为IE添加特别的指令。条件注释从IE5开始被支持,它可能在IE5.0,5.5,6里有区别。
我(译者注:指作者)自己也在顶层的框架中使用了一些条件注释。如果你以源代码形式查看本页,你将会看到:
<!--[if IE]> <style> div.logo { margin-left: 10px; } </style> <![endif]-->以上代码的作用是:
一般情况下,div.logo的left margin将为22px。但是,IE有个BUG,就是当它碰到浮动元素(floated elements)的margins时候,它将会以2倍于该元素的实际margin值来处理。所以我要告诉IE,这个元素是10px(10?11?)。于是我用条件注释告诉了它。
这些代码例子将会概括性地说明你能如何使用条件注释以及你不能如何使用条件注释。
条件注释的基本结构和HTML的注释(<!-- -->)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。我很想把所有特殊的样式放在logo.css里。但是很不幸的是,这看起来不太可能。我也试过根据条件注释,使用<link>来导入一个额外的样式表,但是因为我只需要一个额外的样式规则,这样会让事情变得复杂很多。当然如果你需要在IE里使用很多的额外的样式,那么使用<link>或许是一个好的方法。
基本语法
<!--[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。 |
http://www.cnblogs.com/poissonnotes/archive/2010/05/28/1745996.html
http://www.cnblogs.com/dtdxrk/archive/2012/03/06/2381868.html
相关文章推荐
- IE特有的html条件注释使用规则
- 关于IE条件注释(译)
- IE 条件注释
- IE条件注释详解
- IE条件注释,嗅探低版本IE用户,并引导升级
- 关于IE和非IE浏览器的条件注释
- (转)CSS布局参考 IE的If条件注释使用备忘
- IE条件注释
- IE 下的条件注释(Conditional Comments)
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 使用条件注释判断 IE 浏览器版本
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- CSS中IE的IF条件使用注释
- 关于ie中的hack以及条件注释方法
- 条件注释判断浏览器版本<!--[if lt IE 9]>
- HTML中的IE条件注释
- HTML中的IE条件注释
- 针对主流浏览器的CSS-HACK写法及IE常用条件注释
- 针对IE5--IE9的条件注释
- ie的兼容方法,条件注释的方法