IE7上的矩阵滤波器是否对空白敏感?

时间:2012-08-02 20:48:16

标签: css internet-explorer internet-explorer-7

我正在使用CSS转换,回归到IE7和IE8的以下Matrix转换。

filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.0, M12=0.33, M21=-0.33, M22=0.0,sizingMethod='auto expand') 

这适用于所有版本的IE。但是如果我在每个逗号之后移除空格,就像我缩小CSS时发生的那样,我会在IE7下看到一堆奇怪的故障。看起来好像浏览器完全忽略了CSS文件其他部分中各种其他类的定义。

这只会影响IE7,无论是使用IE7标准模式的原生IE7还是IE9都会发生。

我可以通过调整我的CSS缩小器为这个规则留下空间来解决这个问题,但我想了解发生了什么。我认为这是IE7中的一个错误;我是第一个遇到它的人吗?

1 个答案:

答案 0 :(得分:4)

我不确定你是第一个遇到它的人。我们今天遇到了这个问题。你肯定是第一个报道它的人。 Scott McGhee reported一个月之后。我还没有找到任何其他对这个模糊问题的引用。

您认为它是IE7中的错误是正确的;这是出乎意料的行为。如果在IE7或IE7浏览器模式下加载此fiddle,您将看到三个橙色方块,其中包含三个X.第一个方格是25x25px,第二个方格是50x50px(从100x100px缩小并略微模糊)和第三个100x100px。这是正确的行为。但是,如果您删除小提琴中指示的空白字符,您将看到第二个和第三个元素不再被设置样式。

我的理论是在字符串参数中有一个空格而整个参数列表中没有前导空格会导致此错误。我添加了另一种方法,模糊,来测试这个猜想:

progid:DXImageTransform.Microsoft.Blur(pixelradius=3, enabled='hello world');

如果你删除了第一个空格,它会在3.后面再现错误。如果你还删除第二个空格,在你好后面,它再次起作用。我的理论是站不住脚的。

我在IE6中没试过这个。