我正在建立一个网站,其中包含大量具有透明背景的 png-24 文件。在 IE 6 中,它们显然不能正确显示,所以我需要某种可靠的、好的解决方案来解决 IE 中的 PNG 问题,并且需要很少的工作并且可靠。有什么好主意吗?
5 回答
对于 IE6 透明度,我遵循个人流程:
1.如果只有一个或两个 PNG 图像(如徽标或普通图像),我只需使用filter
:
#selector {background:none; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='test.png', sizingMethod='crop');}
问题:如果应用于链接,它将不再可点击。可能适用于h1#logo
并具有a
透明性。
2.如果我有很多 24 位 PNG 文件,或者特殊用例(重复背景等),我使用DD_belatedPNG
对IE7 + IE8 重要:您不能为24 位透明 PNG 图像设置动画或组合filter:alpha
(用于 IE 中的元素的整体opacity
,jQuery 也用于设置)属性。opacity
它将其更改为看起来像 8 位透明度,所有不是 100% 不透明或透明的东西都呈现黑色背景。
以下是 ie6 的一些好的 png 修复:
网上有很多IE PNG 修复程序,基本上都使用相同的技术。较旧的 Internet Explorer 不直接支持 PNG 中的 alpha,但它们都有一个过滤器可以支持。因此,将以下代码编写为对象的 css 的一部分会将图像置于src
元素的背景中:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png');
这样,您可以轻松地在 Internet Explorer 中显示透明度。但是,获取一个 png 修复脚本(在 JavaScript 中)并将其包含在您的页面中的条件注释中要容易得多。然后脚本将使您的所有图像自动工作。
为此,我们使用了 Dean Edwards 的IE7。(所以在 IE7 出来之前就这样命名了。)它对那种事情有好处。
目前有很多选择可以让这个工作。标准是通过 CSS 应用 DirectX 过滤器来改变使 PNG 在 IE6 中透明。当网页从 IE6 或更低的客户端加载时,甚至有脚本会自动执行此操作。
http://www.google.com/search?btnG=1&pws=0&q=transparent+png+ie6