2009-05-30 6 views
2

私は本当に+セレクタが好きで、IE6の回避策のためだけに別のCSSルールを追加したくありません。 既存のCSSルールが+セレクタを使用していて、その要素を変更している場合は、jQueryの方法ですべてのCSSルールをチェックできます。IE6の実装+セレクタ

このような何か:

if (IE6) 
    for (var rule in $.cssrules) 
    if (rule.selector.find('+')) 
     $(rule).style = rule.style; // here the + selector works even for IE6 because jquery emulates it. 

だから、基本的な質問です:私は、ドキュメントに定義されているすべてのCSSルールの配列(または他の何か)を得ることができますか?

乾杯、 マヌエル

答えて

0

これを行う方法があります。実際、IE7と呼ばれるJavaScriptライブラリは既にこれを行っており、Internet Explorer 6および5でもほとんどのCSSセレクタを使用できます。 http://code.google.com/p/ie7-js/
私はそれを自分で使っていないと言わなければならないが、私はそれについて良いことを聞いた。あなたは何ができるか

+0

これはクールです:IE 5/6には、このライブラリの基になるcssTextプロパティ(http://javascript.gakaa.com/stylesheet-csstext.aspx)があります。 ありがとう! –

0

あなたがクラスを経由して、ルールを適用する場合は、多分あなたはそれが適用されるべき知ら要素の属性を検査でき、それが適用されていた場合に参照してください?

0

は次のようなものです:

は、通常のすべてのもの - しかし、IE6のCSSルールを使用したが、その後も同じスタイルで別のクラスを作成します。使用して、

/* CSS */ 
.myNormal + .cssRule + strong, 
.myOverrideClass { 
    color: #f0f; 
} 

そして、 jQueryのは、通常のCSSセレクタにマッチした要素にオーバーライドクラスを適用します。彼らはIEにしている場合は、この方法を使用して

$('.myNormal + .cssRule + strong').addClass('myOverrideClass'); 

、スタイルを取得することはありません唯一の方法の誰かがありますJavascriptを無効にして6他のブラウザでjavascriptを使用していないユーザーは影響を受けません。

関連する問題