2010-12-15 108 views
3

我一直在嘗試用這個CSS翻轉背景圖片:當你有一個PNG用透明鏡像/在IE翻轉圖像和保持透明度

.flipHorizontal { 
    -moz-transform: scaleX(-1); 
    -webkit-transform: scaleX(-1); 
    -o-transform: scaleX(-1); 
    transform: scaleX(-1); 
    filter: FlipH; 
    -ms-filter: "FlipH"; 
} 

一切工作中,除了IE瀏覽器都只是罰款背景(阿爾法通道)。所有透明和半透明像素都會變黑。

任何人都知道這個解決方法?

也許有另一個過濾器(讀取「修補程序」),MS實施來解決這類問題。我認爲同樣的錯誤也適用於旋轉和其他轉換過濾器以及PNG。

+0

什麼版本的IE? – Rushyo 2010-12-15 13:57:23

+0

所有版本的IE,即使是新的IE9測試版 – wazz3r 2010-12-15 21:16:30

回答

2

使用舊的IE6 AlphaImageLoader破解得到你正在尋找的,以及另一DXImageTransform做翻轉。不幸的是,由於你必須定義圖像,所以它變得不那麼通用,但你可以用一些腳本動態設置樣式。 (用於動態腳本的一個例子見here - 查找pngfix.js代碼。)

.flipHorizontal { 
    -moz-transform: scaleX(-1); 
    -webkit-transform: scaleX(-1); 
    -o-transform: scaleX(-1); 
    transform: scaleX(-1); 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myImage.png') 
      progid:DXImageTransform.Microsoft.BasicImage(mirror=1); 
} 

在IE8和FF3.6測試成功。不知道你需要-ms-過濾器,但我無法測試IE6或IE7,並且不確定它是否需要該屬性。

+1

我用FlipH來做魔術,因爲我不得不使用JavaScript。 IE用戶如果想擺脫黑幕,則必須切換瀏覽器。我可能會通過強迫一些用戶退出使用IE來幫助所有Web開發人員...如果您願意使用JavaScript來修復它,那麼您的解決方案將非常有用。 – wazz3r 2011-10-17 14:17:52

+1

其他任何使用它的人可能想刪除尾隨的「第二個過濾器 - (鏡像= 1)」; - 讓我有點痛苦! – Gais 2013-07-09 14:03:10

+0

@Gais提到的尾部引用已從代碼中刪除。 – Jpsy 2013-10-29 09:43:48

3

所以,我意識到這是2年太晚了。抱歉。 :)

但是,對於任何其他人來到這裏,嘗試把一個背景顏色的CSS,並應該使它感到高興(或者,至少,它修復它同樣的問題,當你淡入淡出,我假設它們都是相同的掩蔽錯誤)。

+0

非常有幫助。感謝張貼2年太晚了! – Brendan 2014-10-30 21:15:09

+0

現象解決方案!謝謝。 – 2015-10-08 17:50:57