2012-07-26 40 views
10

我只是想知道在IE中使用CSS可以應用兩種不同的過濾器。 所以,我需要使用一個透明的PNG和一些不透明的div。是否有可能使用它們?IE中的多個CSS過濾器

我透明壺行看起來是這樣的:

li.item .item-texture { 
    background: none transparent scroll repeat 0% 0% !important; 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/ie/articles/item-content-hov.png', sizingMethod='scale') !important; 
} 

我試圖增加一個行(filter: alpha(opacity=50);)和獨立的過濾器與逗號(.. 'scale') !important, alpha(opacity=50);),但它是無用的。

+0

答案是錯的..請參考第二個答案... – MonteCristo 2013-09-02 09:32:01

回答

7

不能超過1個過濾器屬性,因爲IE只會使最後一個過濾器生效。

注意:由於這似乎得到了幾個下來票,我想澄清的是,這並不意味着你不能應用多個濾鏡,只是你只能使用1 filter財產。如果您嘗試應用多個過濾器並將它們分離到多個屬性中,則只有最後一個過濾器纔會生效。 http://msdn.microsoft.com/en-us/library/ms532847(v=vs.85).aspx

還要注意,一些IE濾波器(包括阿爾法)需要具有佈局,以便在元件被正確地施加:

根據從MSDN下面的文章,它們不是由逗號但空格分隔:http://www.satzansatz.de/cssd/onhavinglayout.html

+2

所以它仍然是一塊......(: – 2012-07-30 09:11:33

15

對不起,但上面選擇的答案是不正確的。您在可以在IE中應用多個過濾器,但它們需要由一個或多個空格分隔。

空格之前的逗號也會起作用,但前提是它必須跟隨右括號。因此,不帶參數的IE 4.0篩選器(例如gray)在這種情況下不起作用。最好只將空格作爲分隔符。

如果您轉到上面給出的鏈接http://msdn.microsoft.com/en-us/library/ms532847(v=vs.85).aspx,然後單擊following example link(在IE中,當然),您會看到旋轉和模糊都應用於第二個圖像。從「查看源文件」,該圖像標籤:

<img id=image2 src="/workshop/samples/author/dhtml/graphics/sample.jpg" 
    style="filter:progid:DXImageTransform.Microsoft.Blur(strength=50), 
        progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)" 
    height="165px" width="256px" border="0" alt="ocean beach"> 

我已經有點成功模擬了一個盒子陰影在IE7和8的「傳播」(雖然成功取決於你如何接受認爲它看起來),使用:

filter: progid:DXImageTransform.Microsoft.Shadow(Color=#c5c1ae, Strength=10, Direction=0) 
     progid:DXImageTransform.Microsoft.Shadow(Color=#c5c1ae, Strength=10, Direction=90) 
     progid:DXImageTransform.Microsoft.Shadow(Color=#c5c1ae, Strength=10, Direction=180) 
     progid:DXImageTransform.Microsoft.Shadow(Color=#c5c1ae, Strength=10, Direction=270); 

這樣陰影就會從div的所有邊傳播開來。我也在包含漸變的div上組合陰影。然而,這並非都是沒有危險的。在上面的情況下,陰影具有佈局,並且您必須調整邊距以適應其大小。此外,IE爲IE瀏覽器,其中一些過濾器的組合可能產生意想不到的後果,導致開發解決方法,放棄方法和拔掉頭髮。

在您的問題的原始示例中,如果列出多個過濾器,則前一個過濾器將被後續過濾器覆蓋,就像任何其他CSS屬性一樣。在第二個示例中,「!important」需要完全位於樣式的末尾,否則整個CSS塊將被丟棄,因爲它的格式不正確。 (其實,!重要的需要完全拋棄,關於你永遠需要使用它的唯一原因是如果你正在開發第三方代碼,並且需要保護你的標籤不受其他人的影響! 。如果你的風格被無意中覆蓋,你需要一個更具體的聲明。)

+0

@格雷格是的,你是對的:) – nerdess 2013-08-07 10:44:32

+0

@格雷格,你大:)它爲我工作。 – user2142786 2014-02-20 07:44:59

+2

應注意採用IE 8,如果你有一個過濾器,空間不工作。逗號將需要。 – 2014-08-29 18:39:28

0

逗號被忽略。你需要一個空格或換行粘貼多個過濾器。您選擇

progid:xxx progid:yyy/works 

progid:xxx, progid:yyy/works 

progid:xxx 
progid:yyy/works 

progid:xxx,progid:yyy/will not work