同时使用Matrix和AlphaImageLoader

时间:2013-05-02 18:09:19

标签: css3 internet-explorer-8 filter

以下IE过滤器出现问题:

progid:DXImageTransform.Microsoft.Matrix()

progid:DXImageTransform.Microsoft.AlphaImageLoader()

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

如果我单独使用其中任何一个,它们都能起作用,但似乎无法将这些效果联系起来?

之前有没有人见过这个错误?

正确的语法是什么?

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

1 个答案:

答案 0 :(得分:2)

如果您希望效果按照上面指定的顺序(Matrix然后AlphaImageLoader)发生,则无法实现。

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