3种修复IE6 PNG图片透明度问题的方法
来源:互联网 发布:文化知乎 编辑:程序博客网 时间:2024/04/30 06:30
当我在自己的网页设计项目中尝试使用据有透明度的PNG图片的各种方法时,我开始寻找各种能让PNG图片在IE6下正常工作的方法。我们都知道,IE6对于PNG的不透明度支持的并不好。
1..htc文件的修复方法
下载.htc文件,然后指定你希望实现PNG支持的那个元素/标签。想了解更多的话,这有在线Demo和安装说明.(都是英文)
2.JavaScript修复方法
SuperSleight
这是我印象中修复IE6的PNG问题的最好的JavaScript方法。如果想了解更详细的使用方法,可以查看24ways.org的教程
Google Code
我偶然发现这个简单的Google Code,但这个脚本的缺陷是只能修复名为*-trans.png的PNG图片。还有一个遗憾之处,就是透明背景图片无法使用background-repeat平铺,也无法使用background-position来定位。
3.CSS修复方法
我无意中发现了这个可以让工作更加有效的方法,使用了CSS和IE的条件标签。
效果预览 下载实例
步骤一:HTML
我们可以先创建一个HTML文件,然后添加一个类名为”vehicles”的空div。
<div class=”vehicles”></div>
步骤二:样式表
下面来创建一个名为style.css的样式表并添加以下代码:
body {
background: url(body-bg.jpg); /* 添加基本背景图 */
}
.vehicles {
width: 500px;
height: 176px;
background: url(vehicles.png) no-repeat; /* 为vehicles类添加背景图 */
}
步骤三:IE样式表
下面我们来创建另一个样式表,命名为IE.css。现在,我们都知道IE讨厌PNG文件,那我们就要在这里施展魔法了:
/* 注:我在vehicles类名前添加了”html”, 我这样做就不会使background属性与另一个样式表冲突了. */
html .vehicles {
background: none; /* 隐藏当前背景图从而使用后面的滤镜重置它 */
width: 500px; /* 必须指定宽度 */
height: 176px; /* 必须指定高度 */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=’vehicles.png’);
}
步骤四:IE条件注释
这是最后一步。现在我们回到步骤一中的html文件,然后我们来读取之前创建的所有样式表。
在你的文件顶部中添加以下代码:
<link rel=”stylesheet” href=”styles.css” type=”text/css” />
<!–[if IE 6]>
<link rel=”stylesheet” href=”IE.css” type=”text/css” />
<![endif]–>
*注:我在第二行使用了IE条件注释,这就是为什么我没有将两种样式放在同一个样式表中,而把专门用于IE6的样式表单独定义的原因。这样更有利于日后管理。
总结
这些就是我总结的几个解决IE6下PNG问题的方法,优点在于遵从XHTML,而且缩减了页面的代码量。
- 3种修复IE6 PNG图片透明度问题的方法
- 修复IE6 PNG图片透明度问题的方法
- IE6 PNG图片透明度问题的方法
- 使ie6.0支持.png图片的透明度
- Android png图片透明度的问题
- PNG图片在IE6下透明度解决方法
- IE6实现PNG透明度问题整理
- IE6及以下png透明度问题
- IE6 PNG图片透明的问题
- 修复IE6 PNG不透明问题的最佳解决方案
- 一个修复IE6 PNG不透明问题不错的解决方案
- IE6 PNG 图片问题分析
- IE6 使用png透明图片的方法 [非JS方法]
- 一次性解决PNG透明度在IE6下显示问题的脚本
- 更好的IE6修复PNG不透明脚本
- IE6下面的PNG图片
- IE6下PNG图片背景透明的处理方法
- IE6显示png透明背景、图片的方法
- C++中接口与实现分离
- 求一条sql语句,绝对难题
- 解决windows7透明背景变花
- 在DataGrid中显示使用内存流的图片(转译) (转)
- Oracle学习笔记[3] - 错误:ora-12154:tns:无法处理服务名的错误
- 3种修复IE6 PNG图片透明度问题的方法
- 大智若愚为真智者.
- Quartz cron表达式
- 孔氏家谱
- 虚拟桌面原理及实现
- c#.net下简单的Ajax例子——Ajax.dll
- Henry手记—Web Form中的Datagrid的自定义分页(转)
- 利用ajax.dll进行Ajax的开发2 、3
- 利用ajax.dll进行Ajax的开发4