2

我正在使用 CSS 转换,回退到 IE7 和 IE8 的以下矩阵转换。

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 中的错误;我是第一个遇到的吗?

4

1 回答 1

4

我不确定你是否是第一个遇到它的人。我们今天刚遇到这个问题。您当然似乎是第一个报告它的人。一个月后,斯科特·麦吉报告了这件事。我没有找到任何其他关于这个晦涩问题的参考资料。

您认为它是 IE7 中的错误的假设是正确的;这是意外的行为。如果你在 IE7 或 IE7 浏览器模式下加载这个小提琴,你会看到三个橙色的方块,里面有三个 X。第一个正方形是 25x25px,第二个是 50x50px(从 100x100px 缩小并略微模糊),第三个是 100x100px。这是正确的行为。但是,如果您删除小提琴中所示的空白字符,您将看到第二个和第三个元素不再设置样式。

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

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

如果你删除第一个空格,它会重现错误,在 3 后面。如果你还删除第二个空格,你好,它会再次工作。我的理论是不成立的。

我没有在 IE6 中尝试过这个。

于 2012-11-28T18:42:56.300 回答