我有以下 HTML:
<a><img src="myfile.png" /> Some text</a>
还有这个 CSS:
a:hover
{
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
opacity: .75;
}
这个问题在 IE 8 和 IE 7 中都会出现。
当 PNG 图像受 -ms-filter 或 filter 影响时,其 alpha 透明度被破坏。尝试一下,您就会看到。这是 IE 8 和 IE 7 中的错误。
我可以删除 CSS 中应用的“-ms-opacity”和“filter”属性吗?这个的语法是什么? (例如,-ms-filter: "";)
有人知道解决此问题的方法吗?
最佳答案
只是美化 SpliFF 的答案,我可以通过将以下 jQuery 添加到我的页面来解决这个问题:
$(function() {
if (jQuery.browser.msie)
$('img[src$=".png"]').each(function() { // must have quotes around .png
this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+this.src+",sizingMethod='scale')";
});
});
这会将 AlphaImageLoader 应用于页面中的所有 PNG。
关于css - 使用 "-ms-filter"属性时如何保持 PNG alpha 透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1004973/