针对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]-->