2

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

このようなもの:

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 ルールの配列 (またはその他のもの) を取得できますか?

乾杯、マヌエル

4

3 に答える 3

0

クラスを介してルールを適用する場合、適用する必要がある既知の要素の属性を調べて、適用されているかどうかを確認できますか?

于 2009-05-30T13:43:10.637 に答える
0

それを行う方法があります。実際、 IE7と呼ばれるJavaScriptライブラリは、すでにそれ以上のことを行っています。これにより、Internet Explorer 6および5でさえほとんどのCSSセレクターが有効になります: http ://code.google.com/p/ie7-js/ 。
自分では使ったことがないのですが、いい話を聞いています。

于 2009-05-31T11:34:44.527 に答える
0

あなたができることは次のようなものです:

IE6以外の通常のCSSルールを使用しますが、同じスタイルの別のクラスも作成します。

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

次に、jQueryを使用して、通常のCSSセレクターによって一致する要素にオーバーライドクラスを適用します。

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

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

于 2009-05-31T11:39:13.457 に答える