以下IE过滤器存在问题:
progid:DXImageTransform.Microsoft.Matrix()
progid:DXImageTransform.Microsoft.AlphaImageLoader()
我不能让他们在同一元素上同时工作。
如果我单独使用它们中的任何一个,它们都可以工作,但是似乎无法连锁这些效果吗?
有人看过这个错误吗?
正确的语法是什么?
我已经尝试过在SO和MS参考站点上推荐的几种组合,但是都没有解决我的问题。
最佳答案
如果希望效果按照上面指定的顺序(Matrix
然后AlphaImageLoader
)发生,则不可能。AlphaImageLoader
是procedural surface,在the static filters descriptions such as Matrix中要注意(我加了强调):
当多个过滤器应用于一个对象时,每个过滤器都是进程
按源顺序排列,但程序表面除外
首先计算。为了强调滤镜的效果,请将其放置在最后
源顺序或对象的父级。始终将过渡放置在最后
按源顺序。
因此,即使最后定义了AlphaImageLoader
,也将始终对其进行处理。如果订购对您来说不是问题(尽管我怀疑是这样),那么这应该可以解决:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader() progid:DXImageTransform.Microsoft.Matrix();
注意
filter
调用之间的空格(空白)。您不能将其命名为一个地方,然后再命名为另一个地方,因为它将覆盖先前的filter
。所以这不起作用,因为第二个将覆盖第一个:filter: progid:DXImageTransform.Microsoft.AlphaImageLoader();
filter: progid:DXImageTransform.Microsoft.Matrix();