1

IE のバージョンが 8 未満の場合、条件付きコメントを使用して css ファイル (「IEonly.css」と呼びましょう) にリンクしています。通常の css ファイルのいくつかのプロパティをオーバーライドしようとしています。奇妙なことに、IEonly.css は新しい css プロパティを正しく設定しますが、通常の CSS ファイルのプロパティを上書きしません!

(私はIE7でこれを機能させようとしています)。

ヘルプ!

編集: css スタイルの後に !important を追加して、役立つかどうかを確認しました。そうではありませんでした。

4

6 に答える 6

6

複数のスタイルシートが与えられた場合(条件付きコメントで他のブラウザーから隠されているものもあります) 、カスケードの通常のルールが適用されます。

セレクターが適切に特定されていること、およびスタイルシートを正しい順序で適用していることを確認してください。

于 2010-05-27T19:30:36.800 に答える
3

両方のスタイルシートで同じセレクターを使用している場合は、通常のスタイルシートの後に条件付き IE スタイルシートを配置する限り問題ありません。それを行っても IE シートが機能しない場合は、より具体的なセレクターを記述する必要があるかもしれません。

#sidebar #nav li a { }

それ以外の...

#nav li a { }

また

li a { }
于 2010-05-27T21:17:51.400 に答える
1

!importantルールを使用して CSS 定義をオーバーライドすることもできることを忘れないでください。これは、そのルールに関するW3C ドキュメントです。

于 2010-05-27T19:37:09.517 に答える
1

おそらく、スタイルシートを再編成して IE スタイルにデフォルト設定し、if !IE条件を使用して「適切なブラウザー」オーバーライドを使用することができます。

于 2010-05-27T19:55:52.850 に答える
0

同様の問題に関する私自身の経験に基づいて、IEonly.css ファイルのどこかに、悪い文字または欠落している文字が潜んでいると推測します。それらを追跡するのは非常に面倒な場合があるため、次の手順を実行します。

  1. 通常の CSS をオーバーライドするために使用する部分を除いて、IEonly.css からすべての CSS を一時的に削除します。これが機能するかどうかをテストします。含まれている場合は、引き続きコードをファイルに貼り付けます。必要に応じてセクションを分けてください。問題が見つかることを願っています。
  2. コードのその部分だけがファイルに存在するときにオーバーライドが機能しなかった場合は、正しいセレクターがあり、特異性が問題ないことを確認してください。

詳細については、 http://www.w3.org/TR/CSS2/cascade.html#important-rulesを読むこともできます。

私たちが見るためのコードを公開してもらえますか? それは助けになるでしょう。

于 2010-05-27T21:46:45.953 に答える
-1

要素にクラスを追加し、クラス セレクターを使用して IEonly スタイルシートで参照し、クラス セレクターを使用せずに通常のスタイル シートで参照しました。これにより、IEonly スタイル宣言が通常のスタイル宣言をオーバーライドしました。

于 2010-05-27T19:56:44.830 に答える