24位PNG图的优势大家应该知道:它可以保存透明通道,可以实现优秀的透明渐变等效果。但是,IE6却不支持(可恶啊,怎么还不退役),下面我们就来一步步解决IE6这个bug
首先了解一下IE浏览器的条件注释,这对之后标准浏览器下不需要执行我们这个特殊的PNG透明是有用的 。
什么是条件注释
<!--[if XXX]>
这里是正常的html代码
<![endif]-->
这里XXX是一些特定的东东,在此列表几个出来,详细介绍各自的含义:
<!--[if IE]> / 如果浏览器是IE /
<!--[if IE 5]> / 如果浏览器是IE 5 的版本 /
<!--[if IE 6]> / 如果浏览器是IE 6 的版本 /
<!--[if IE 7]> / 如果浏览器是IE 7 的版本 /
解释:
lte:就是Less than or equal to的简写,也就是小于或等于的意思。
lt :就是Less than的简写,也就是小于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
举例:
<!--[if gt IE 5.5]> / 如果IE版本大于5.5 /
<!--[if lte IE 6]> / 如果IE版本小于等于6 /
<!--[if !IE]> / 如果浏览器不是IE /
条件注释是在IE5.0/Win以后才被IE支持的,对于IE5以前的浏览器是无效的。
比如我们需要在包含24位PNG图片的页面引用一个js文件来处理PNG图,来达到透明的效果,但是有不想增加其它标准浏览器的负担,就可以使用条件注释:
<!--[if lte IE 6]>
<script language="javascript" type="text/javascript" src="js/fixPNG.js"></script>
<![endif]-->
下一篇我们分别来解决页面内PNG图片及背景PNG图片透明的问题。