4

IE10は、DirectX画像操作のサポートを終了しました。現在はSVG標準を使用しています。ただし、たとえばFirefoxでは、IE10以外の任意の<img>要素にsvgフィルターを適用でき、の画像でのみ機能するように見えます<svg> <image ... /> </svg>

ブラウザごとに別々のマークアップを作成する必要がありますか?それは間違っているようです。

filterのようなCSSフィルターを使用してみ-ms-filterましたが、IE10では機能しませんでした。

更新1:

さて、私は特に明確ではなかったかもしれないと思います。

<!DOCTYPE html>
<style>
    .pop {

        filter: url(#pixelate);

    }

    .pop:hover {
        filter: none;
    }

    .lol {
        filter: url(#pixelate);
    }

    .lol:hover {
        filter: none;
    }

    .svgRoot
{
    height: 150px;
    width: 200px;
}
</style>
<svg class="svgRoot">
<image class="lol" x="0" y="0" width="100px" height="100px"  xlink:href="http://i.imgur.com/M5TIb.jpg" />
</svg>

<svg class="svgRoot">
    <defs>
        <filter id="pixelate">
            <feMorphology operator="erode" radius="2" />
        </filter>
    </defs>
    <image x="0" y="0" width="100px" height="100px" xlink:href="http://i.imgur.com/M5TIb.jpg" filter="url(#pixelate)" />
    <text class="svgText" x="25%" y="90%" filter="url(#pixelate)">SVG text</text>
</svg>

<img src="http://i.imgur.com/M5TIb.jpg" width="100" class="pop">

Firefoxでは、最後の要素である<img>、フィルターが機能します。ただし、IE10にはありません。DXでIE4-IE9を使用して、ここで同じ効果を達成できました。効果。しかし、IE10はSVGを実装しています。ただし、<svg>タグ内に含まれる要素でのみ機能するようです。では、別のマークアップを記述せずにIE10でフィルター効果を実行するにはどうすればよいですか?何かが足りない気がします...

これがそれをクリアすることを願っています

4

2 に答える 2

1

IE10+ で特定のスタイルが必要な場合は、次を使用して CSS で取得します。

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { styles here }
于 2013-01-22T17:42:42.417 に答える
0

社内でこれを行っている場合は、古いスタイルのフィルター構文を受け入れるように IE10 のグループ ポリシーを構成するようにシステム管理者に請願できます。オープンなインターネットでこれをやっているなら、あなたはSOLです。新しいものは svg 要素でのみ機能し、古いものは削除されました。

于 2014-02-26T00:44:09.467 に答える