8

Internet Explorer を使用している場合、さまざまな CSS ファイルをロードする条件ステートメントを配置できることは知っていますが、これを CSS ファイル内で実行できますか?

Internet Explorer の場合は右マージンを 20 に、他のブラウザーの場合は 10 にしたい状況があります。

4

4 に答える 4

14

これを処理する最も簡単な方法は、ページの残りの部分に特定の ID を持つ div を配置する HTML の条件を使用することです。

<!--[If IE 8]>
<div id="IE8">
<![endif]-->
  .
  .
  .
<!--[If IE 8]>
</div>
<![endif]-->

次に、CSS で次の操作を実行できます。

#IE8 div.whatever { ... }

この種の CSS ハックは不要になります。

于 2010-12-12T16:07:22.353 に答える
2

CSS の公式の条件付きコメント構文はありません。条件付きの HTML と JavaScript のコメントしかないので、それらを工夫してください ( John Fisherが 1 つの方法を示しています)。

非常によく知られている CSS ハックを使用して条件付き CSS をエミュレートすることもできますが、私はむしろそうしたくありません。ハッキングは、IE の CSS 処理のバグを悪用することを目的としているため、IE の任意のバージョンで壊れたり、予期せず動作したりする可能性があります。

于 2010-12-12T16:08:09.057 に答える
2

IE が解釈できないルールを使用すると、IE がルールの処理を停止し、他のブラウザで安全に使用できるようになる、このようなハックがあります。

このような:

div.iehack { 
  margin-right:20px; 
  voice-family: "\"}\""; 
  voice-family:inherit;
  margin-right:10px; 
} 
于 2010-12-12T16:08:21.270 に答える
0

この種のハッキングを行うと、css ファイルがめちゃくちゃになります。IE 用に別のファイルを作成することをお勧めします。一般的な css ファイルでマージンを 10 に設定し、一般的な css ファイルの後に (条件付きで) ロードする必要がある IE 固有のファイルで 20 に設定します。あなたはこれを行う方法を知っており、他の方法で行う理由はほとんどありません.

于 2010-12-12T16:23:59.667 に答える