cbp*_*cbp 5 css png opacity internet-explorer-8 internet-explorer-7
我有以下HTML:
<a><img src="myfile.png" /> Some text</a>
Run Code Online (Sandbox Code Playgroud)
这个css:
a:hover
{
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
opacity: .75;
}
Run Code Online (Sandbox Code Playgroud)
IE 8和IE 7都存在这个问题.
当PNG图像受-ms-filter或过滤器影响时,其alpha透明度将被破坏.尝试一下,你会看到.这是IE 8和IE 7中的一个错误.
我可以删除CSS中应用的"-ms-opacity"和"filter"属性吗?这是什么语法?(例如-ms-filter:"";)
有谁知道解决这个问题的方法?
cbp*_*cbp 10
只是修饰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')";
});
});
Run Code Online (Sandbox Code Playgroud)
这将在页面中的所有PNG中应用AlphaImageLoader.
更新:直接应用于 img 的AlphaImageLoader过滤器可能会覆盖 Alpha 过滤器。至于去除过滤器你尝试过吗filter:none;?
是的,通过条件注释以编程方式定位 IE6 及更低版本。
<!--[if lt IE 7]>
<style>a:hover{filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);}</style>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
此外,像IE7-js这样的脚本将为您处理 PNG 透明度,而不会用非标准代码弄乱您的 CSS。
<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14265 次 |
| 最近记录: |