5

ご存知のとおり、InternetExplorerは単純なグラデーションを処理できます。次に、TwitterBootstrapのスニペットを示します。

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);

ただし、次のように2つのCSSルール(1つはIE <8用、もう1つはIE 8用)を使用している人もいます。

filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#7fbf4d', endColorstr='#63a62f'); /* For Internet Explorer 5.5 - 7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#7fbf4d', endColorstr='#63a62f')"; /* For Internet Explorer 8 */

私の質問は、2番目のルールは本当に必要ですか?Twitter Bootstrapは非常に徹底的ですが、「-ms-filter」ルールを使用していません。このページによると、-ms-filter属性はCSSの拡張であり、IE8標準モードのフィルターの同義語として使用できます。

4

3 に答える 3

3

私のおすすめ:

CSS3Pieを使用する-http ://css3pie.com/

これは、IE6、IE7、およびIE8用のJavaScriptライブラリであり、グラデーションを含むいくつかのCSS3機能をサポートするパッチを適用します。

はい、必要に応じて恐ろしいIE固有のfilterスタイルを使用できますが、CSS3Pieではこれらの機能に標準のCSSスタイルを使用できます。はるかに簡単です。

あなたの直接の質問に実際に答えるには:

はい、-ms-filter通常はスタイルが必要です。IE8はfilter、主にIE6とIE7に使用されるの代わりに常にそれを使用します。IE8で動作する場合もありfilterますが、すべてではないため、-ms-filterIE8との互換性を確保するために使用することをお勧めします。

[編集]なぜ彼らはそれを変えたのですか?彼らがIE8をリリースしたとき、Microsoftは「標準に準拠」しようとする大きなポイントを作ったからです。

ブラウザが標準に準拠するためには、ブラウザがサポートするCSSプロパティに、最終的なW3C標準ではないベンダープレフィックスを使用する必要があります。そのため、プレフィックスを追加することで-ms-、MicrosoftはグローバルCSS名前空間の汚染を(遅ればせながら)元に戻そうとしていました。

さらに、引用符のfilterない古い構文は無効なCSSであり(主に後のコロンのためprogid)、一部のブラウザーで問題が発生したため、引用符が追加されました。(Firefox 3.6で、要素を回転させるスタイルに従ってすべてのスタイルを削除するインスタンスがありましたfilter。何が起こっているのかを理解するのに何年もかかりました)。

filterMicrosoftが元の構文との下位互換性を保持しているという事実は、主に実用主義の問題でした。MSは、古い構文を使用してすべてのサイトを破壊する余裕がありませんでした。しかし、Microsoftからは、開発者は両方を使用する必要があるという強い含意がありました。これfilterは、IEの後続のバージョンで古いスタイルのサポートが終了するためです。結局のところ、彼らは両方のサポートをやめ、一挙にサポートを終了filter-ms-filerましたが、IE8のリリースで与えられた影響は、スタイルシートで両方の構文を提供するための推奨プラクティスになるのに十分でした。

IE8がリリースされた当時、XHTMLは今月の新しいフレーバーであり、完全に検証されたコードを作成することは、多くの開発者にとってリストのトップでした。これはおそらく、引用符を含めるための構文変更の強力な推進力でした。コロンが外れているため、古いfilterスタイルを使用して検証するCSSを作成することはできません。代わりに新しい-ms-filterスタイルを使用することで、人々は有効なCSSを書くことができました。良いアイデアが進むにつれて、もちろん人々はとにかく古い構文を使い続けなければならなかったので、これは実際にはうまくいきませんでしたが、意図は良かったです。

他の独自のスタイルにも同じ扱いが与えられたことを指摘する価値があります。たとえば、古いスタイル-ms-behaviorの代わりにIE8で使用できます。behavior誰もそれを使用しません。なんで?よくわかりません。

知っておく価値のあるもう1つの事実は、W3Cがと呼ばれるCSSプロパティfilterを標準化する過程にあるということです。filterこれは、Microsoftのスタイルとはまったく異なる仕事をし、まったく異なる働きをします。それが標準化され、ブラウザがそれをサポートし始めた場合、2つの構文の間に明示的な衝突が発生します。

于 2012-04-03T21:52:27.583 に答える
0

自分の質問に答えたようです。はい、必要です。Microsoftが標準にさらに準拠しようとしているということは、IEの一部のバージョンでは、フィルタープロパティに対して独自のわずかに異なる構文規則があることを意味します。

IE7では、その後にetcがfilter:続きます。progid:DXIma...ただし、IE8 +には、互換モードで使用できるIE7フォールバックと-ms-、ベンダー固有のcssプロパティを示すフィルターのより適切なプレフィックスプロパティと、qoutes内のその値があります。

于 2012-04-03T21:41:07.283 に答える
0

そのままにしておくとどのような害がありますか?

ブラウザがCSSの行を理解しない場合、ブラウザはそれを無視します。

これらのCSSの2行はほとんど同じです。Microsoftが、他のブラウザがyonksに使用している-(ハイフン)プレフィックスを使用して、IE8以降のプロプライエタリCSSの構文を変更することを決定したと推測するのは危険です。

技術的には、CSSはどちらの方法でもW3Cに準拠していないため、独自のCSSの別の行が害を及ぼすことはありません。

最高のときにIEを理解しようとする価値はありません!

于 2012-04-03T21:45:52.160 に答える