IE的条件注释
日期:2008-09-20 分类:未分类
从IE 5开始,有了IE条件注释。既然是“IE”条件注释,所以只有IE中才有效果。
IE条件注释是用来判断IE浏览器版本的。其基本结构和HTML的注释(<!-- -->)是一样的,因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们,而IE则会根据条件显示。所以IE条件注释常用于CSS hank。
IE条件注释的基本语法是:
<!--[if IE]>
这里的内容IE浏览器才显示
< ![endif]-->
这里的内容IE浏览器才显示
< ![endif]-->
<!--[if IE]>和< ![endif]-->之间的内容在IE浏览器中能显示,而其他浏览器则会把它当作注释忽略。
IE条件注释还可以加上浏览器版本:
<!--[if IE 5]>
这里的内容IE 5才显示
< ![endif]-->
<!--[if IE 5.5]>
这里的内容IE 5.5才显示
< ![endif]-->
<!--[if IE 6]>
这里的内容IE 6才显示
< ![endif]-->
<!--[if IE 7]>
这里的内容IE 7才显示
< ![endif]-->
这里的内容IE 5才显示
< ![endif]-->
<!--[if IE 5.5]>
这里的内容IE 5.5才显示
< ![endif]-->
<!--[if IE 6]>
这里的内容IE 6才显示
< ![endif]-->
<!--[if IE 7]>
这里的内容IE 7才显示
< ![endif]-->
IE条件注释还有几个特殊语法:
1、lte Less than or equal to的简写,也就是小于或等于的意思;
2、lt Less than的简写,也就是小于的意思;
3、gte Greater than or equal to的简写,也就是大于或等于的意思;
4、gt Greater than的简写,也就是大于的意思;
5、! 不等于的意思,跟javascript里的不等于判断符相同。
举个例子:
<!--[if lte IE 6]>
lte的意思是小于或等于,所以这里面的内容只有IE 6及以下版本的IE浏览器能显示
< ![endif]-->
lte的意思是小于或等于,所以这里面的内容只有IE 6及以下版本的IE浏览器能显示
< ![endif]-->
有一点需要注意的是:IE条件注释只适用于HTML,对CSS则没有用。不过我们可以换一个思路解决这个问题:
<!--[if IE]>
<style type="text/css">
这里的CSS语法只在IE浏览器里有效
</style>
< ![endif]-->
<style type="text/css">
这里的CSS语法只在IE浏览器里有效
</style>
< ![endif]-->
这个方法就可以使需要的CSS只在IE里有效果。
举一个综合的例子:
XHTML代码:
<!--[if ie]>
<p class="p1">你的浏览器是IE浏览器,并且这段文字是红色的。</p>
<![endif]-->
<p>如果你使用的是IE浏览器,那么你会看到上面还有一行红色的文字;如果你使用的不是IE浏览器,那么你只能看到这段蓝色的文字。</p>
<p class="p1">你的浏览器是IE浏览器,并且这段文字是红色的。</p>
<![endif]-->
<p>如果你使用的是IE浏览器,那么你会看到上面还有一行红色的文字;如果你使用的不是IE浏览器,那么你只能看到这段蓝色的文字。</p>
CSS代码:
<style type="text/css">
p{
color:#00f;
}
</style>
<!--[if ie]>
<style type="text/css">
.p1{
color:#f00;
}
</style>
<![endif]-->
p{
color:#00f;
}
</style>
<!--[if ie]>
<style type="text/css">
.p1{
color:#f00;
}
</style>
<![endif]-->
结果正如上面XHTML代码第二段所说。你可以点击这里查看结果。