
正文
关于ie6下png背景透明
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
今天我突破了一个技术难关,真的是头都大了。。
关于ie6下png背景透明的解决方法,我就不多说了,网上有很多解决方法,我用的是其中的一种:
<script type="text/javascript" src="js/iepng/iepngfix_tilebg.js"></script>
<style type="text/css">
img,div { behavior: url(js/iepng/iepngfix.htc);}
</style>
本来网站上传服务器的第一个版本,已经解决了png背景透明的问题了,但是第二版我用div+css重构的时候,却出现了一个很严重的问题,凡是有以上那段代码的,ie6打开页面就会出现假死现象,动弹不得,第一版用的是同一种方法,但是却打开很顺畅,我百思不得其解,想象了各种可能的原因,但是都还是不能解决这个问题。
然后我换了另一种ie6下png透明的js,发现这种js和网站的导航特效不兼容,所以只能又换回原来的js。
后来我发现一个现象,因为公司网速慢,所以打开网页的时候,我看到png图片背景是灰色的,然后网页打开完毕的一瞬间,就变成了透明的,我就在想,那一瞬间这肯定是那段代码发生作用的过程,平时网速快的时候,应该看不出这个过程,而且我看到ietester状态栏写着还有85个项目等着加载……
第一个版本不会假死,我以为是我重构网页的时候写错什么或者漏了什么关键代码,然后我先把第二个版本备份,再把第一个版本的web目录覆盖第二个版本,看看是web的问题还是java的问题,最后确定是web的问题,然后再把里面css、images、js……文件夹分别覆盖,试到images的时候假死,就是你了!然后我又把images文件夹里面的图片十几个为一组,一组组的试,最后发现头部、底部和背景的图片引起假死现象。
然后我突然想到,为什么有这段代码的时候,ie6打开就会假死呢,我其他的图片,头部背景,logo,导航,搜索框,底部icon等等等,都是用的png格式,可能问题就出在这里,因为那段js代码会从头到尾力遍该网页所有png格式的图片,每碰到一张png图片,就会执行一次透明代码,工作量太大,所以网页才会假死,然后我就把头部、底部和背景的图片全部换成jpg,顺利解决了假死这个问题。
假死虽然解决了,但是我又发现png图片又不透明了- -!我看到同一页面下一张png大图又是透明的,又思考了很久。。坑爹啊。。后来才发现之前不透明是因为把png作为背景图嵌入网页(background),那张大图是用<img src=""/>的方式,后来我把background换成了img方式,问题解决!但是很奇怪的是,另一个网页的png图片也是用background的方式,但是它偏偏就是透明的。。无语了。。计算机技术真是博大精深,还好我有着锲而不舍的精神,终于算是解决了这个技术难关。。








