2012-02-10 17 views
2

私は>セレクタをIE6に追加するためにポリフィルを探しています。私はSelectivizrについて知っていますが、私はそのルールにすべてを含めるつもりはありません。これを行うための簡単なスクリプトがありますか?私はjQueryを持っているので、それを含めることができます。JS polyfill CSS子セレクタをIE6に

+1

Selectivizrはどのコンビネータのサポートについても言及していないので、それを含むことは疑いの余地があります。 * IE7.js(https://code.google.com/p/ie7-js/) – BoltClock

+0

あなたは子供をエミュレートすることができますセレクタは 'parent child {style:value;} parent * child {style:default-value}'の規則を使用しています。 –

+0

jQueryのソースを見て、ie6で '>'の作業をどのようにするかを調べます。または、マークアップを変更し、それらの子要素のいくつかのクラスを導入し、そのすべてのストレスを忘れることができます。 – Christoph

答えて

3

jQueryはブラウザに関係なく子セレクタで動作します。そのため、jQueryを使用して、ページの読み込み時にクラスとして手動でスタイルを適用できます。

jQuery('parent>child').addClass('parent-child-class');

+0

この方法は一定の状況が、それは簡単に1つの要素に複数のクラスをサポートしていないIE6の問題に実行することができます – Damon

1
.example * {background: #00f; } 
.example * * {background: none; } 

これはと同様の結果があります:

.example > * {background: #00f; } 

をしかし、セレクタ特異性を持つように注意してください。

より使用可能な方法では、JavaScript/jQueryを介して、IE6のための余分なクラスを追加することです:

$('.example > *').addClass('example-child'); 
0

私はこの種のものがDean Edwards' IE7.js libraryあるん古いIEのバージョンについての知っている唯一の他のポリフィル。 (およびフォローアップ・ライブラリーie8.jsおよびie9.js)。

IE7.jsは、IE6が最新版であったときに戻ってきたライブラリです。可能な限りIE6から欠けていた新しいブラウザで利用可能な機能を多機能化することが目的でした。 「IE7.js」と呼ばれたのは、「新しいバージョンがリリースされていない場合、IEを現代的な基準に強制しようとしている」という言い方だ。

IE8.jsとIE9.jsは、IE7とIE8のリリース直後にリリースされました。

IE7.jsには、>セレクタを含む多くのIE6の欠落CSS機能用のポリフィルが含まれています。

Selectivizrを使用したくない場合は、これが私が知っている唯一の他のライブラリです。

希望に役立ちます。