我正在使用 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,无论是 native IE7 还是使用 IE7 标准模式的 IE9,都会发生这种情况。
我可以通过调整我的 CSS 缩小器来解决这个问题,为这个规则保留空格,但我想了解发生了什么。我认为这是 IE7 中的一个错误;我是第一个遇到的吗?
最佳答案
不知道你是不是第一个遇到这种情况的。我们今天就遇到了这个问题。您显然是第一个报告此事的人。斯科特·麦吉 reported一个月后。我还没有找到任何其他关于这个晦涩问题的引用。
您认为这是 IE7 中的错误的假设是正确的;这是意外的行为。如果你加载这个fiddle在 IE7 或 IE7 浏览器模式下,您会看到三个橙色方 block ,其中有三个 X。第一个正方形为 25x25 像素,第二个为 50x50 像素(从 100x100 像素缩小并稍微模糊),第三个为 100x100 像素。这是正确的行为。但是,如果您删除 fiddle 中所示的空白字符,您将看到第二个和第三个元素不再具有样式。
我的理论是,字符串参数中存在空格而整个参数列表中没有前导空格会导致此错误。我添加了另一种方法,模糊,来测试这个猜想:
progid:DXImageTransform.Microsoft.Blur(pixelradius=3, enabled='hello world');
如果您删除第一个空格,它会重现 3 后面的错误。如果您还删除 hello 后面的第二个空格,它会再次起作用。我的理论没有被证伪。
我还没有在 IE6 中尝试过这个。
关于css - 矩阵过滤器在 IE7 上对空白敏感吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11785510/