IE6不支持PNG图片透明效果的完美解决方案(完善版)

可怜的IE6,不支持PNG图片透明,
这已经是其众多“BUG”中,不是那么显眼的一个,
但也是让部分人头痛的一个了。
(今天在机房那破机器上IE6忘了抓图了,现在想给大家看效果也难啊。)
发个PNG大家看看。 如果用IE6的朋友,请在下面回复截个图!谢谢啦。
[attach]641886[/attach]
想查看区别的,请到这个页面
http://www.54caizi.org/demo/enablePngImages.html

所以,只有借助滤镜来实现透明了。

方法一: 复制内容到剪贴板
代码:
<div align="center" style="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png图片路径 ',sizingMethod='image'); " width="100px" height="100px"></div>这样的话,需要在每一PNG都这么做,显然不合适。而且设计的时候也不直观。

方法二:
将下面的代码保存为“png.js” 复制内容到剪贴板
代码:
function correctPNG()
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
window.attachEvent("onload", correctPNG);然后在网页底部加上 复制内容到剪贴板
代码:
<script type="text/javascript" src="png.js"></script>经过实际测试。
这种方法在普通模式下,问题不大。

但是问题来了:
1、如果图片未指明大小(width/height),那么,最终显示的尺寸将是(0px*0px),也就是说:啥也没有。
2、如果把图片放在隐藏层中(<div style="display:none;">...),那么,同上。程序获得不到图片大小。

这么一来,也不能完美解决了。

OK!那么我们来完善一下吧!

既然获取不到代码中的图片尺寸,我们何不直接读取图片的实际尺寸呢? 复制内容到剪贴板
代码:
<!--对于隐藏层中的图片,或者其他原因导致图片尺寸无法获得-->
<!--此时我们需要读取图片的真实大小-->
<!--以免宽高都为0px而导致图片不显示-->
var imgTrueWidth=0;
var imgTrueHeight=0;
if(img.width==0)
{
var imgPng=new Image();
imgPng.src=img.src;
imgTrueWidth=imgPng.width;
imgTrueHeight=imgPng.height;
}我们通过 Image对象,来获得其真实大小。然后最终代码如下: 复制内容到剪贴板
代码:
function correctPNG4IE6()
{
//获得全部图片
var imgs=document.getElementsByTagName("IMG");
for(var i=0; i<imgs.length; i++)
{
var img = imgs[i];
var imgName = img.src.toUpperCase();
<!--操作PNG图片-->
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : "";
var imgClass = (img.className) ? "class='" + img.className + "' " : "";
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
var imgStyle = "display:inline-block;" + img.style.cssText;
if (img.align == "left") imgStyle = "float:left;" + imgStyle;
if (img.align == "right") imgStyle = "float:right;" + imgStyle;
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;

<!--对于隐藏层中的图片,或者其他原因导致图片尺寸无法获得-->
<!--此时我们需要读取图片的真实大小-->
<!--以免宽高都为0px而导致图片不显示-->
var imgTrueWidth=0;
var imgTrueHeight=0;
if(img.width==0)
{
var imgPng=new Image();
imgPng.src=img.src;
imgTrueWidth=imgPng.width;
imgTrueHeight=imgPng.height;
}

<!--用<span>替换<img>标签-->
var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"";
strNewHTML=strNewHTML+"width:" + (img.width==0?imgTrueWidth:img.width) + "px; height:";
strNewHTML=strNewHTML+(img.height==0?imgTrueHeight:img.height) + "px;";
strNewHTML=strNewHTML+imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";
strNewHTML=strNewHTML+"(src='" + img.src + "', sizingMethod='scale');\"></span>";

<!--执行替换-->
img.outerHTML = strNewHTML;

i = i-1;
}
}
}
<!--加载完毕,执行代码-->
window.attachEvent("onload", correctPNG4IE6);

Transformer代码(Pytorch实现和详解)!!! 这个是第一版,有些代码如果不对,欢迎在评论指正,后续会慢慢改,我也是刚接触transformer,若有些地方理解不对还请指正。 阅读详情

相关推荐

小白快速上手 labelimg:新手图像标注详解教程

本教程主要帮助没有使用过labelimg的小白上手该软件,快速学会基本操作和打标签,为数据集准备打下基础。

小白一枚~ 2万+

IE6浏览器png图片不透明解决办法

IE6不是不支持png是不支持png24可以把图片另存一份png8的专门给IE6用(在ps中一般的设置如图,Alt+Shift+Ctrl+S就能出来这个对话框) AlphaImageLoader也不是只能用绝对路径,是要相对于当前正在访问的页面的路径 转载于:https://www.cnblogs.com/codeLog/p/3152059.html...

dcjw40457的博客 184

XMC1402调试实战:如何用20元的Jlink-OB搞定SWD连接(附DAVE 4.4.2配置)

本文详细介绍了如何使用成本仅20元的Jlink-OB调试器,成功连接并调试英飞凌XMC1402芯片的完整实战流程。内容涵盖从理解芯片启动模式、使用Memtool完成首次烧录与模式切换,到Jlink-OB驱动安装、连接验证,以及在DAVE 4.4.2中配置调试环境并解决常见问题的全步骤,为个人开发者提供了一套高性价比的SWD调试解决方案。

zz67890的博客 554

IE6下实现PNG图片正确显示

 下面的Filter是将原本的PNG图片生成一个新的图片,这个图片可以在IE下显示 ===========================================================FF和IE7已经直接支持透明的png图了,下面这个主要是解决IE6下透明PNG图片有灰底的============================================

yanyongshan的专栏 1627

Ubuntu 24.04 下 NoMachine 极速安装与远程桌面配置全攻略

本文详细介绍了在Ubuntu 24.04系统下安装和配置NoMachine远程桌面的完整指南。从系统准备、分步安装到性能调优和常见问题解决,帮助用户快速实现低延迟的远程桌面访问。特别适合开发者和IT管理员在Linux环境下高效部署远程工作环境。

moon9的博客 945

ArcGIS 10.2.2自带Python 2.7.5环境配置全攻略:从pip安装到gdal、arcpy调用

本文详细指导如何在ArcGIS 10.2.2自带的Python 2.7.5环境中进行高效配置。核心内容包括安装pip包管理器、部署gdal等关键地理数据处理库,并确保arcpy模块的无缝调用。通过解决路径配置与PyCharm集成问题,帮助用户在此经典环境中构建稳定、兼容的地理信息自动化工作流,有效连接ArcGIS桌面功能与Python脚本编程。

moon9的博客 767

IE6 PNG终极解决方案(打造W3Cfuns-IE6PNG最强帖)

珍惜生命,远离IE6”,IE6中的bug令很多Web前端开发人员实为头疼,因此不知道烧了多少脑细胞,在众多的Bug中最令人抓狂的就是IE对png图片的不支持,导致设计师和重构师放弃了很多很炫的效果,为了让大家在这方面少烧点脑细胞,KwooShung我就舍身一把,把当前最流行最实用的IE6支持PNG图片的方案整理到本贴内,以供大家学习参考! 方案1 - 滤镜解决方案: 介

讲不出再见 1386

Java SSH框架学习

Java SSH框架学习

私信可回答各种问题~ 1790

IE6不支持图片透明解决方案

先去老外Drew Diller的博客上下载一个js文件:www.dillerdesign.com/experiment/DD_belatedPNG/ 把JS文件下载下来,放到你的网站目录里去, 然后在html 的&lt;head&gt;&lt;/head&gt;里面加上以下的代码:   &lt;!--[if IE 6]&gt; &lt;script src="js/DD_belate...

蔡志伟的博客 226

Java后端新人入职第一天,环境搭建,全看这篇就行了

本文主要是记录一下一个新人java后端开发来到一个新公司,如何快速完成环境搭建,本文意旨一个小时搞定所有环境搭建,让你更快加入到新环境。包括Java、Maven、Tomcat、idea、Redis、Mysql等等,还附带对应安装资源包,我这里就以目前比较流行的版本进行详细说明。

qi_ming88的博客 9280

系统架构设计(以飞控系统、航电系统、机电管理系统、电子电气架构为例)

系统架构涉及对系统的结构和行为进行高层次的描述。它包括系统的组成部分、这些部分之间的关系、与外部环境的交互方式,以及满足特定功能和非功能性需求的方法。系统架构定义了系统的总体设计蓝图,指导系统的开发、集成、部署和维护。系统架构设计的目的是通过合理的结构和设计原则,确保系统能够高效、稳定、安全地运行,满足当前和未来的需求,同时具备良好的维护性、扩展性和可持续性。良好的系统架构不仅能够提高系统的开发效率和运行性能,还能降低长期的维护和运营成本,支持系统的持续演进和技术更新。

qq_41854911的博客 3052

《我的世界》武器伤害机制解析:锋利剑与亡杀剑的实战选择

在《我的世界》Java版中,战斗机制的核心在于伤害计算与武器附魔系统。攻击冷却机制决定了实际输出效率,而附魔则提供了多样化的伤害加成路径。锋利附魔提供通用线性伤害提升,适用于大多数生物;亡杀附魔则针对亡灵生物实现伤害倍增,在特定场景下效率显著。从技术价值看,理解伤害公式与附魔互斥机制,能帮助玩家优化武器配置,平衡通用性与针对性。在应用场景上,地下城探索、刷怪塔运营、Boss战等不同环境,对武器特性有差异化需求。本文通过对比白板剑、锋利剑与亡杀剑的实战表现,结合攻击冷却、附魔收益等热词,为玩家提供基于效率与成

weixin_33842304的博客 406

手把手教你学Simulink--基于Simulink的高增益DC-DC变换器仿真建模

特点高电压增益:可以在不使用变压器的情况下实现较大的电压升压比。适用于低电压源:如太阳能电池板、燃料电池等提供的低压直流电源。效率问题:设计时需特别注意提高效率,减少能量损失。挑战电路复杂性:通常涉及多个电感和电容,以及复杂的开关模式。元件选择:合适的元件参数对于达到理想性能至关重要。控制策略:确保高效稳定运行的同时,适应负载变化。首先明确要模拟的任务内容。实现特定的电压增益比(例如从24V升至380V)。根据预期的输入输出电压确定合适的电路拓扑和元件值。

MHD0815的博客 173

png透明问题解决方法(png图片ie6不兼容问题)

<br />在web前端开发中,经常会遇到需要用背景或图片透明的问题。<br /><br /> 首先,目前我们所面临的情况是:<br /> 1.在ie7+,firefox,safari,opera这些常用浏览器中,直接使用透明png是没有问题的,但在ie6下却不能透明。<br /><br /> 2.ie6目前的时常份额仍然很大,我们必须考虑兼容ie6的问题。<br /><br /> png背景透明解决办法<br /> .pngbackground{<br /> background:url(yo

nb_pdd的专栏 9529

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

CSS实现PNG图片背景透明效果

使用PNG图片作背景,但ie6不能显示PNG透明效果,所以要用AlphaImageLoader滤镜来实现.在CSS文件中要注意图片相对路径:滤镜中的图片路径是相对页面文件,而其它的则是相对CSS文件(注意加粗字).用这滤镜后IE下链接会失效,用 position: relative;解决这个问题.以下是代码例子:Default.aspx代码:DOCTYPE html PUB

roglu的专栏 8248

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ie6中png格式图片修复

在IE6中对图片格式png24支持度不高, 如果使用的图片格式是png24,则会导致透明效果无法正常显示。 解决方法: 1.可以使用png8来代替png24,即可解决问题, 但是使用png8代替png24以后,图片的清晰图会有所下降 ; 2.使用JavaScript来解决该问题,需要向页面中引入一个外部的JavaScript文件然后在写一下简单的JS代码,来处理该问题; 处理png图片的代...

weixin_43269800的博客 277

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ie6下background png 透明问题

PNG 图片在网站设计中是不可或缺的部分,最大的特点应该在于 PNG 可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用。 但为什么 PNG 图片却没有 GIF 和 JPG 图片的使用来得广泛呢,这个祸因应归属于微软的 IE 浏览器(Firefox 和 Opera 对 PNG 支持的比较好,而现在浏览器的主流IE6 却无法很好的支持)。不过微软在最近也开始改过自新了,新

扈亚楠(Java) 2241

png透明图片ie6下消除灰色背景

众所周知IE6不支持透明的PNG图片,而PNG图片在Web设计方面表现力上,具有其它图形格式所达不到的效果,IE6这一致命缺陷极大地限制了Web设计的创意发挥。虽然解决IE6的透明PNG的方法也很多,从使用IE特有的滤镜或是e­xpression,再到javascript+透明 GIF替代.但是这些方法都有一个缺点,就是不支持CSS中backgrond-position与background-

fangzy0112的专栏 620

003IE6图片不支持png24

在IE6中对图片格式png24支持度不高, 如果使用的图片格式是png24,则会导致透明效果无法正常显示 解决方法:    1.可以使用png8来代替png24,即可解决问题,但是使用png8代替png24以后,图片的清晰图会有所下降    2.使用JavaScript来解决该问题,需要向页面中引入-一个外部的JavaScript文件,然后在写一下简单的JS代码,来处理该问题 <body&g...

Manta__的博客 136

解决ie6中png图片格式不兼容问题

在IE6中对图片格式png24支持度不高,如果使用的图片格式是png24,则会导致透明效果无法正常显示 解决方法:   1.可以使用png8来代替png24,即可解决问题,但是使用png8代替png24以后,图片的清晰图会有所下降   2.使用JavaScript来解决该问题,需要向页面中引入一个外部的JavaScript文件,然后在写一下简单的JS代码,来处理该问题     j...

dianmou7334的博客 276

IE6下使用24位PNG图片的解决方案(上)

24位PNG图的优势大家应该知道:它可以保存透明通道,可以实现优秀的透明渐变等效果。但是,IE6却不支持(可恶啊,怎么还不退役),下面我们就来一步步解决IE6这个bug 首先了解一下IE浏览器的条件注释,这对之后标准浏览器下不需要执行我们这个特殊的PNG透明是有用的 。 什么是条件注释 <!--[if XXX]> 这里是正常的html代码 <![endif]-...

ailixu3063的博客 217

ie8下jquery改变PNG的opacity出现黑边,ie6下png透明解决办法

目前互联网对于网页效果要求越来越高,不可避免的用到PNG图片,PNG分为几种格 式,PNG8 PNG24 PNG32,其中最常用的,也是显示效果和大小比较适中的则是PNG24,支持半透明,透明,颜色也...

u011927449的博客 196

透明PNG背景图片 For IE 6.0 Firefox Opera

PNG图片在网页设计中扮演着一个很重要的角色,利用PNG图片的特点可以制作出实用,绚丽的效果,可是对于PNG图片的支持却不是很理想,Firefox和Opera对PNG支持的比较好,特别是Firefox浏览器。可是IE却不理PNG,使得设计者无法很随意的使用png图片。 效果预览 IE5.5+的AlphaImageLoader滤镜为通向png提供了一个道路,如果他载入的是PNG(Port...

weixin_30628077的博客 229
上一篇: css,html,js/jQuery开发小技巧汇总-更新中~
下一篇: Web容器下的get和post方式请求的乱码问题解决
IMSIB
博客等级 码龄17年 5粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值