2012-08-02 60 views
2

我正在使用CSS變換,回退到以下矩陣變換爲IE7和IE8。矩陣過濾器是否對IE7有白色空間敏感?

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 minifier來爲這條規則留下獨立的空間,但我想知道發生了什麼。我認爲這是IE7中的一個錯誤;我是第一個遇到它嗎?

回答

4

我不確定你是否第一個遇到它。我們今天才遇到這個問題。你當然似乎是第一個報告它。一個月後Scott McGhee reported。我還沒有發現任何其他引用這個隱晦的問題。

你認爲這是IE7中的錯誤是正確的;這是意想不到的行爲。如果您在IE7或IE7瀏覽器模式下加載此fiddle,您會看到三個橙色正方形,其中有三個X。第一個正方形是25x25px,第二個50x50px(從100x100px縮小並略微模糊)和第三個100x100px。這是正確的行爲。但是,如果按照小提琴中所示刪除空白字符,則會看到第二個和第三個元素不再被設置樣式。

我的理論是在整個參數列表中沒有前導空格的字符串參數中有一個空格會導致此錯誤。我已經添加了另一種方法,模糊,來測試這個猜想:

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

如果你刪除它再現的bug第一空間,在3落後。如果您還刪除了第二空間,招呼身後,再次工作。我的理論不成立。

我還沒有在IE6中試過這個。

+0

非常有趣;你的理論確實有效。 – DNS 2012-11-28 21:12:04