以下IE过滤器存在问题:

progid:DXImageTransform.Microsoft.Matrix()

progid:DXImageTransform.Microsoft.AlphaImageLoader()


我不能让他们在同一元素上同时工作。

如果我单独使用它们中的任何一个,它们都可以工作,但是似乎无法连锁这些效果吗?

有人看过这个错误吗?

正确的语法是什么?

我已经尝试过在SO和MS参考站点上推荐的几种组合,但是都没有解决我的问题。

最佳答案

如果希望效果按照上面指定的顺序(Matrix然后AlphaImageLoader)发生,则不可能。

AlphaImageLoaderprocedural 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();

10-06 00:26