IE 中的条件注释(<!--[if lte IE 7]><![endif]-->)的作用
idoilike吧
全部回复
仅看楼主
level 12
zgh26782000 楼主
[Yeah]
2013年01月17日 04点01分 1
level 12
zgh26782000 楼主

条件注释只能用于Explorer 5+ Windows(以下简称IE).
如果你安装了多个IE,条件注释(Conditional comments)将会以最高版本的IE为标准(一般为IE 6)。
条件注释只能在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?)。于是我用条件注释告诉了它。
2013年01月17日 04点01分 2
level 12
zgh26782000 楼主
这些代码例子将会概括性地说明你能如何使用条件注释以及你不能如何使用条件注释。
条件注释的基本结构和HTML的注释(<!-- -->)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。我很想把所有特殊的样式放在 logo.css里。但是很不幸的是,这看起来不太可能。我也试过根据条件注释,使用<link>来导入一个额外的样式表,但是因为我只需要一个额外的样式规则,这样会让事情变得复杂很多。当然如果你需要在IE里使用很多的额外的样式,那么使用<link>或许是一个好的方法。
2013年01月17日 04点01分 3
level 12
zgh26782000 楼主

例子: 下面我放置了一些条件判断来根据你的IE版本来输出相应信息。(如果你使用的浏览器不是IE,你将会什么都看不到)(译者注:由于我的BLOG的问题,目前即使是IE也看不到任何东西。)
代码如下: <!--[if IE]>
根据条件判断,这是Internet Explorer<br />
< ![endif]-->
<!--[if IE 5]>
根据条件判断,这是Internet Explorer 5<br />
< ![endif]-->
<!--[if IE 5.0]>
根据条件判断,这是Internet Explorer 5.0<br />
< ![endif]-->
<!--[if IE 5.5]>
根据条件判断,这是Internet Explorer 5.5<br />
< ![endif]-->
<!--[if IE 6]>
根据条件判断,这是Internet Explorer 6<br />
< ![endif]-->
<!--[if lt IE 6]>
根据条件判断,这是Internet Explorer 6以下的版本<br />
< ![endif]-->
<!--[if lte IE 6]>
根据条件判断,这是Internet Explorer 6及以下版本(含ie6)<br />
< ![endif]-->
<!--[if gt IE 6]>
根据条件判断,这是Internet Explorer 6以上版本<br />
< ![endif]-->
2013年01月17日 04点01分 4
1