我环顾四周,决定使用CSS方法,而不是依靠JS ...我认为那些坚持使用IE6的企业用户可能也会被IT部门禁用JS。
所以在我的HTML中我有:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>My Page</title>
<link rel="stylesheet" type="text/css" href="default.css" />
<!--[if IE 6]><link rel="stylesheet" type="text/css" href="ie6.css"><![endif]-->
</head>
<body>
<img src="media/logo.png"/>
</body>
然后我的ie6.css只包含:
img
{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
}
然而,这一切都没有任何影响,没有透明度。我评论了页面的所有其余部分,所以它确实是一个,但仍然没有运气。我删除了default.css样式表但仍然没有区别。
修改: 我现在使用.htc方法工作,将该文件加载到条件IE6测试块中。原来我遇到的问题是Windows 7已经“锁定”了文件(我甚至不知道这意味着什么),这阻止了IE加载/使用它。
答案 0 :(得分:3)
如果我没弄错的话,你必须使用
progid:DXImageTransform.Microsoft.AlphaImageLoader(src='yourimage.png')
对于每张图片,你不能让它只适用于所有图像。
答案 1 :(得分:1)
我正在使用以下页面的解决方案:IE PNG support
按照在线演示online demonstration一步一步,您的png也将在IE中透明。
答案 2 :(得分:1)
在HTML页面中,您有media/logo.png
中相对于HTML文件(default.css
)的图像路径,您的条目为behavior: url(iepngfix.htc);
(iepngfix.htc的路径)相对于HTML文件而言,在ie6.css
中,您有一个filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='media/logo.png', sizingMethod='scale');
条目,其中包含相对于CSS文件的图像路径。至少你需要改变iepngfix.htc(IEPNGFix.blankImg = 'media/blank.gif';
)
您需要具有以下文件夹结构:
答案 3 :(得分:0)
您可能想看看http://www.dillerdesign.com/experiment/DD_belatedPNG/
它还允许您使用带有CSS background-position
属性的alpha通道的png,当使用AlphaImageLoader时通常不会这样做。