2011-07-06 15 views
1

私が持っているので、同じようIE8用AlphaImageLoader CSSフィルターを使用しているページ:IE8は、 "フィルタ" のCSSスタイルを無視し

フィルタ:プログラムID:DXImageTransform.Microsoft.AlphaImageLoader(SRC = '/画像/ thing.png '、sizingMethod =' scale ');

私のテストでは、IE8(Windows XP、工場出荷時の設定)ではすべて正常です。しかし、クライアントはIE8を使用していると主張している誰かからスクリーンショットを受け取りました。このスクリーンショットは、ブラウザがfilter指示文を完全に無視するように見えます。条件付きコメントによってロードされたIE固有のスタイルシート内の他のすべてのスタイルは機能しているように見えます。これを引き起こしているIEまたはWindowsの設定はありますか?

おかげで、サイモン

+0

お客様が確かにIE8にいることを確認して、可能であればスクリーングラフを入手しておく価値があります。 彼は互換モードまたはIEの古いバージョンを実行している可能性があります - あなたは "可能性"について考えすぎる時間を費やす前にその質問をクリアする必要があります –

+0

これは良いアイデアです、今私はそれをやっています... – Simon

+0

アップデート:IE8で互換性モードがオフであることを確認しました。これは奇妙です... – Simon

答えて

0

この単純なテスト・ケース:これらのバージョンのいずれかでIE6、IE7、IE8、IE9、と癖モードでhttp://fiddle.jshell.net/TyMxr/show/light/

<div></div> 

div { 
    border: 2px solid red; 
    width: 256px; 
    height: 256px; 
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.gravatar.com/avatar/74c04b6c96836f044ed927a5db4dc92b?s=128&d=identicon&r=PG', sizingMethod='scale'); 
} 

作品。

これはIEではうまくいかないとは思えません。

ご覧になるテストページがありますか?私は何か他のことが起こっているに違いないと思います。

6

IE8をfilterと置き換えて-ms-filterと置き換えました。

IEのすべてのバージョンをサポートする場合は、これらのスタイルを両方提供する必要があります。 -ms-filterため

構文は、同様にfilterに若干異なります。

  • すべてのフィルタは、今、あなたの例のように(彼らのフルprogid文字列で指定されているが、いくつかのフィルタは、以前に短い構文で指定することができ)。

  • -ms-filterの値は引用符で囲む必要があります。これは無効なCSS構文であることを防ぐためです(progidの後にコロンが含まれているため無効なCSSです。他のブラウザで解析エラーが発生してCSSファイルの残りの部分が正しく読み込まれないことが判明しています)。 IE9はequivalient標準CSS3プロパティの賛成で、filter-ms-filterの両方のサポートを落としたことを

    .myelement { 
        filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/thing.png', sizingMethod='scale'); 
        -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/thing.png', sizingMethod='scale')"; 
    } 
    

    注:

だからあなたの例では、次のようなスタイルを必要とします。

希望に役立ちます。

+0

IE8/9で私のテストケースを試しましたか?できます。 – thirtydot

+0

@thirtydot - 場合によっては動作する可能性がありますが、確かにすべての場合ではありません。私はこの特定のスタイルを試していませんでしたが、両方を必要とするものは間違いありません。 – Spudley

関連する問題