10

CSS を使用して IE で 2 つの異なるフィルターを適用することが可能であると思っています。そのため、透明な PNG を使用する必要があり、div. 両方を使用することは可能ですか?

私の透明メーカーの行は次のようになります。

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;
}

もう 1 行追加 ( filter: alpha(opacity=50);) し、フィルターをコンマ ( .. 'scale') !important, alpha(opacity=50);) で区切ってみましたが、だめでした。

4

3 に答える 3

15

申し訳ありませんが、上で選択した回答は正しくありません。IE では複数のフィルターを適用できますが、1 つ以上のスペースで区切る必要があります。

スペースの前のコンマも機能しますが、閉じ括弧の後にある場合のみです。そのため、この場合、などのパラメーターのない IE 4.0 フィルターgrayは機能しません。セパレーターとしてのみスペースに固執するのが最善です。

上記のリンクにアクセスした場合: http://msdn.microsoft.com/en-us/library/ms532847(v=vs.85).aspx次のサンプル リンクをクリックします(もちろん IE で)。 、回転とぼかしの両方が 2 番目の画像に適用されていることがわかります。「ソースを表示」から、イメージタグは次のとおりです。

<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 プロパティと同様に、前のフィルターは後続のフィルターによってオーバーライドされます。2 番目の例では、「!important」は完全にスタイルの最後にある必要があります。そうしないと、CSS のブロック全体が形式が間違っているため破棄されます。(実際には、!important は完全に破棄する必要があります。それを使用する必要がある唯一の理由は、サード パーティのコードを開発していて、自分が制御できない別の !important-happy 開発者からタグを守る必要がある場合です。スタイルが意図せずオーバーライドされている場合は、より具体的な宣言が必要です。)

于 2013-07-08T23:45:45.243 に答える
7

IE は最後の 1 つだけを有効にするため、2 つ以上のフィルター プロパティを指定することはできません。

:これはいくつかの反対票を獲得しているように見えるので、これは複数のフィルターを適用できないという意味ではなく、1つfilter のプロパティしか使用できないということを明確にしたかったのです。複数のフィルターを適用して複数のプロパティに分割しようとすると、最後のフィルターのみが有効になります。

MSDN の次の記事によると、それらはコンマではなくスペースで区切られています: http://msdn.microsoft.com/en-us/library/ms532847(v=vs.85).aspx

また、一部の IE フィルター (アルファ版を含む) を正しく適用するには、要素にレイアウトが必要であることに注意してください: http://www.satzansatz.de/cssd/onhavinglayout.html

于 2012-07-29T02:16:16.780 に答える
0

コンマは無視されます。複数のフィルターを貼り付けるには、空白または改行が必要です。

progid:xxx progid:yyy / works

progid:xxx, progid:yyy / works

progid:xxx  
progid:yyy / works

progid:xxx,progid:yyy / will not work
于 2013-12-05T03:46:39.117 に答える