`

解决ie6不支持png图片问题

 
阅读更多

首先说一下如何切图:

1.色彩丰富,大的切成jpg

2.尺寸小的,色彩不丰富的和背景透明的切成gif或png8

3.半透明的切成png8并用js实现其半透明

 

方法一:

background:url(../images/x.png) no-repeat left top;
_background-image: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/x.png');

 

此方法可让IE6支持png24,效果甚佳屡试不爽,但是
1、图片只能用背景图显示
2、不能同时对该元素进行定位

如果需要用这方法又要定位,那也还是有办法的,就是在此元素外加个包围元素,给它定位即可(不能给它定位,没说不能给它老爸定位哈)

 

方法二:

首先从http://www.twinhelix.com/css/iepngfix/下载 iepngfix.zip(直接点击下载,如果链接还有效的话),解压后里面有个实例效果可以看看。想测试IE6的话,用IETESTER貌似不管用,我用的虚拟机中XP的IE6。
其中有3重要的文件:

blank.gif(此文件貌似是解决用IMG标签插入PNG图像时产生的1像素偏移的bug。)
iepngfix.htc    (这个文件是让IE6支持PNG-24透明的关键)
iepngfix_tilebg.js   (此脚本是用来解决用PNG作为背景时,不能用Position定位和repeat的问题。)
使用方法:
一、将blank.gif 、iepngfix.htc、iepngfix_tilebg.js分别拷贝进你想要的文件夹内,以我的为例:images/blank.gif  、js/iepngfix.htc  、js/iepngfix_tilebg.js  。
二、然后,这里需要更改唯一个需要配置的文件,用记事本或其他软件打开iepngfix.htc,找到IEPNGFix.blankImg = thisFolder + ‘blank.gif’; 这句代码,并修改blank.gif图片地址,以我的为例:
IEPNGFix.blankImg = ‘images/blank.gif’;
(注意:图片地址是以需要调用这个文件的html文档所在的位置作为根目录的,所以不应该写成
IEPNGFix.blankImg = ’../images/blank.gif’;
如果需要这样写,请把前面的thisFolder + 加上,就变成它的相对路径了。)

三、在需要hack的html页面文件中<head></head>部分加入
<script src=”js/iepngfix_tilebg.js” type=”text/javascript” ></script>
四、 至此,你就可以在你的css文件中添加全局属性* {behavior: url(“js/iepngfix.htc”);} (注意:htc文件路径同 样是以html文档的位置为根目录),不过这样写总让人感觉会增加服务器负荷及响应时间。建议指定元素拥有该属性,如:
div,input,img {behavior: url(“styles/iepngfix.htc”);}
如果需要使用hack的元素不多,建议直接单独写在该元素的css样式内,如:
#header { width:960px; height:50px; background:url(images/bg.png) no-repeat 0 0; behavior: url(“styles/iepngfix.htc”);}
优化:为了使hack有针对性的调用,应该为IE6单独写一份CSS文件,并在html文档head部分用判断语句来选择性调用ie6的CSS及js文件,如:
1
2
3
4 <!--[if lte IE 6]>
<link href="styles/ie6.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/iepngfix_tilebg.js"></script>
<![endif]--> 
不过我还习惯性把behavior属性改成_behavior,虽然看起来有点多余^ ^
至此,我们终于可以长舒一口气了。
注:试验多次,发现input标签背景无法定位和repeat。
新的问题出现:
我在用wordpress3.1.2做主题模板的时候发现,CSS behavior属性只能写在php模板文件里,因为CSS文件中不能写php的模板路径函数,在if判断语句中加入:
1
2
3
4
5 <!--[if lte IE 6]>
<link href="<?php bloginfo('template_url');?>/styles/ie6.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="<?php bloginfo('template_url');?>/js/iepngfix_tilebg.js"></script>
<style type="text/css"> * { _behavior : url ( <?php bloginfo('template_url');?>/js/iepngfix.htc) ; } </style>
<![endif]--> 
制作wordpress主题模板的时候,css选择器不能使用div,最好通过ID或类名来选择该div,否则iepngfix不起作用,什么都看不到。不知道是我的个案还是其他什么原因,目前除了input标签背景无法定位和repeat,其他标签暂时没有发现问题。

 

方法三:

用JS在IE6下面实现png图和背景PNG透明。

不敢独享,写下这篇文章,也好为自己以后查阅,利人利己啊。

并且,可以解决a:hover 背景png的问题。下面开始,三步即可搞定IE6下PNG透明问题。


第一步:下载JS文件DD_belatedPNG_0.0.8a.js

下载地址:http://dillerdesign.com/experiment/DD_belatedPNG/DD_belatedPNG_0.0.8a.js
或:http://dillerdesign.com/experiment/DD_belatedPNG/DD_belatedPNG_0.0.8a-min.js


第二步:引用JS文件

<!--[if IE 6]>


<script src="DD_belatedPNG_0.0.8a.js" mce_src="DD_belatedPNG_0.0.8a.js"></script>
<script type="text/javascript">
/* EXAMPLE */
DD_belatedPNG.fix('.enter,.enter a,.enter a:hover');

/* string argument can be any CSS selector */
/* .png_bg example is unnecessary */
/* change it to what suits you! */
</script>


<![endif]-->


PS:灰色文字部分【'.enter,.enter a,.enter a:hover'】,为div选择器的名称,大家看后面的html代码即可明白


第三步: 网页body部分

<style type="text/css">

.enter { width:193px; height:43px; position:absolute; bottom:15px; left:60%; z-index:100; color:#FFF}

.enter a{ width:193px; height:43px; display:block; background:url(enter.png) no-repeat;}

.enter a:hover{width:193px; height:43px; display:block; background:url(enter.png) 0px -43px;}

</style>

<div class="enter"><a href="index.php"></a></div>

 

分享到:
评论

相关推荐

    解决ie6下png图片背景问题

    在IT行业中,尤其是在网页设计和开发领域,"解决ie6下png图片背景问题"是一个经典且重要的主题。Internet Explorer 6(简称IE6)是微软公司早期推出的一款浏览器,由于其对PNG(Portable Network Graphics)图像格式...

    js_IE6支持png透明解决png_ie6下不透明背景图片

    首先,我们需要理解为什么IE6不支持PNG透明。PNG-24格式允许半透明和全透明效果,但IE6只支持8位的PNG-8,而这种格式最多只能有256种颜色,无法实现半透明。因此,当你在IE6中使用PNG-24格式的图片时,透明部分会...

    IE低版本支持png透明问题

    对于“IE低版本支持png透明问题”,这个问题主要涉及到Internet Explorer(IE)浏览器早期版本(如IE6、IE7)对PNG图像格式透明度的支持。PNG是一种高质量的位图格式,其支持alpha通道透明度,但在IE6等旧版本中,对...

    完美解决IE6下png透明

    然而,通过一些技术手段,我们可以“完美解决IE6下PNG背景、图片透明问题”。 首先,我们需要了解PNG图像格式。PNG是一种无损压缩的位图格式,支持透明度设置,包括完全透明和半透明。对于其他现代浏览器,如Fire...

    PNG图片IE6下面解决最好的方法

    PNG图片在Internet Explorer 6(简称IE6)下的显示问题是一个历史遗留的挑战,由于IE6对PNG格式的不完全支持,导致透明效果和部分渲染出现异常。PNG是一种优秀的无损压缩图像格式,广泛用于网页设计,特别是需要半...

    让 IE6 支持 PNG 透明

    - 虽然这些技术能让IE6支持PNG透明,但需要注意,它们是针对旧版IE的解决方案,可能不适用于其他现代浏览器。因此,编写CSS时要确保对其他浏览器(如Firefox, Chrome, Safari, Opera等)的兼容性。 9. **最佳实践*...

    ie6图片png完美支持iepngfix

    这个库通过动态修改CSS样式和利用滤镜技术,使得IE6能够近似地支持PNG图片的透明性。在网页中引入iepngfix.js文件,并调用其方法,可以实现在IE6中展示带有透明效果的PNG图片,从而提高了用户体验,特别是在那些需要...

    解决IE6下PNG图片背景色不透明问题的方法

    IE6不完全支持PNG8和PNG24这两种PNG格式。特别是PNG24,它包含了24位颜色和一个alpha通道,用于实现半透明效果,但IE6只能处理没有alpha通道的PNG8格式。因此,当24位PNG图片被用作背景时,IE6会默认将其背景设为...

    DD_belatedPNG.js解决IE6浏览器下的PNG透明图片显示问题

    这主要源于IE6不支持PNG8以上的Alpha透明度,导致透明PNG图片在该浏览器下显示为黑色背景或者完全不透明。为了解决这个问题,开发者们创造了一种名为“DD_belatedPNG”的JavaScript库,它通过JavaScript模拟了PNG...

    解决ie6下png格式的兼容

    标题“解决ie6下png格式的兼容”直指这个问题的核心,即如何让IE6正确地呈现PNG图片的透明效果。这个问题的解决方案通常涉及到JavaScript或CSS的技巧。其中,"DD_belatedPNG.js"是一个常用的JavaScript库,它专门为...

    IE 6 下PNG图片实现透明

    IE6只部分支持PNG-8格式,而不支持PNG-24格式的半透明或Alpha透明。PNG-8最多只能有256种颜色,并且不支持Alpha通道,这意味着它不能实现平滑的透明过渡。而PNG-24则可以显示更多的颜色并具有Alpha通道,能够实现...

    IE6下PNG透明代码

    2. **IE6的PNG透明问题**:IE6不支持PNG24的阿尔法透明,导致图片背景显示为黑色或不透明。对于PNG8,只有256色以下的颜色和单色透明可以正常显示,复杂的透明效果无法实现。 3. **JavaScript解决方案**:为了克服...

    解决IE6 PNG图片透明问题

    本文将深入探讨如何解决IE6中的PNG图片透明问题,并提供相应的解决方案。 首先,我们需要理解问题的本质。PNG8格式支持索引色和简单的全局透明,而PNG24则支持真彩色和全透明。在IE6中,PNG24的Alpha透明通道无法...

    处理ie6下png格式透明效果

    这主要是因为IE6使用了旧版的GDI(Graphics Device Interface)来渲染图形,而不支持PNG24的Alpha透明。 解决IE6中的PNG透明问题,主要有以下几种方法: 1. **CSS滤镜法**:利用CSS的`filter`属性,可以实现IE6对...

    IE6 png背景图片透明

    要解决IE6中的PNG透明问题,有几种常见的方法: 1. **CSS滤镜(Filter)**:IE6提供了一个名为`AlphaImageLoader`的滤镜,可以用来处理PNG的透明性。通过在CSS中添加如下代码,可以实现PNG图片的透明效果: ```css...

    IE6_PNG透明终极解决办法

    2. **JavaScript库**:有一些JavaScript库,如DD_belatedPNG,专门为了解决IE6的PNG透明问题而设计。这些库通过JavaScript动态修改DOM元素,模拟透明效果。 3. **服务器端脚本**:在服务器端,可以使用PHP、ASP.NET...

    ie6中png透明解决方案 js

    由于IE6不支持PNG-24格式的 Alpha 透明通道,导致图片背景出现黑色或者半透明遮罩。为了解决这个问题,开发者们采取了一些JavaScript技巧来实现IE6下的PNG透明效果。本压缩包提供的"ie6中png透明解决方案 js"正是...

    IE6支持png

    解决IE6不兼容PNG的方法主要有以下几种: 1. **CSS滤镜方法**:IE6引入了一种名为`AlphaImageLoader`的滤镜,可以用来处理PNG透明度。通过在CSS中添加如下代码,可以让PNG图片在IE6中显示透明效果: ```css .png-...

    IE6支持PNG透明图片方法

    总之,解决IE6支持PNG透明图片的方法包括使用CSS滤镜、JavaScript库、背景图片技巧、降级处理以及提示用户升级浏览器。尽管这些方法可以解决兼容性问题,但随着IE6市场份额的减少,更建议关注对现代浏览器的支持,...

    ie6下png图片问题

    解决IE6下的PNG图片不透明问题,通常有以下几种方法: 1. 使用CSS滤镜(Filter): IE6特有的CSS滤镜属性可以解决这个问题。例如,对于一个具有PNG透明背景的元素,可以添加如下样式: ```css .png-fix { ...

Global site tag (gtag.js) - Google Analytics