欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

针对IE不同版本使用不同样式、执行不同脚本——Internet Explorer Conditional Comments

程序员文章站 2022-03-02 11:20:42
...

浏览器的差异性是一个另广大Web开发人员头疼的问题,不仅是不同浏览器之间的差异,还有同一款浏览器不同版本之间的差异,比如最明显的就是对CSS标准的支持不一致,导致显示效果千变万化。

 

有时为了使页面在是不同浏览器和不同版本下的显示效果一致,要不断地调试,不断地修改,可还是无法解决问题。

 

举个例子,我们用Ext的Toolbar,里面的button设置一个图标,可是这个图标和按钮名称在水平位置上却无法对齐,如果修改后在IE7下对齐了,在IE8下图标就下沉了,如果再修改后在IE8下对齐了,那在IE7下就上浮了。

 

这时,经过冷静的思考,我们的就想:如果能在IE7和IE8中使用不同的样式,问题不就解决了吗?

 

是的,如果可以在不同的版本下使用不同的样式,那么很多问题都迎刃而解了!

 

现在就有这么一个办法,这是IE浏览器提供的功能,叫做Internet Explorer Conditional Comments,就相当与一种表达式。好了,现在就来领教一下她的魅力吧!

 

例如我要在IE7及以前版本和IE8和以后版本使用不同的样式

<!--[if lt IE 8]>
<style type="text/css">
.x-btn-text-icon .x-btn-center .x-btn-text {
    ground-position:0 2x;
}
</style>
<![endif]-->

<!--[if gte IE 8]>
<style type="text/css">
.x-btn-text-icon .x-btn-center .x-btn-text {
    ground-position:0 0px;
}
</style>
<![endif]-->

 

其中<!--[if lt IE 8]> 表示当IE版本小于8时,使用下面的样式。<!--[if gte IE 8]> 表示IE版本大于等于8。

 

更详细的内容请见MSDN上的官方文档:http://msdn.microsoft.com/en-us/library/ms537512.aspx

 

当然我们也可以在表达中加入js脚本,或是html语句,请看:

<!--[if lt IE 8]>
<script language="javascript">
    alert("您的使用的是IE7或更早版本");
</script>
<![endif]-->

<!--[if gte IE 8]>
<script language="javascript">
     alert("您的使用的是IE8或更新的版本");
</script>
<![endif]-->