Internet Explorer を使用している場合、さまざまな CSS ファイルをロードする条件ステートメントを配置できることは知っていますが、これを CSS ファイル内で実行できますか?
Internet Explorer の場合は右マージンを 20 に、他のブラウザーの場合は 10 にしたい状況があります。
Internet Explorer を使用している場合、さまざまな CSS ファイルをロードする条件ステートメントを配置できることは知っていますが、これを CSS ファイル内で実行できますか?
Internet Explorer の場合は右マージンを 20 に、他のブラウザーの場合は 10 にしたい状況があります。
これを処理する最も簡単な方法は、ページの残りの部分に特定の ID を持つ div を配置する HTML の条件を使用することです。
<!--[If IE 8]>
<div id="IE8">
<![endif]-->
.
.
.
<!--[If IE 8]>
</div>
<![endif]-->
次に、CSS で次の操作を実行できます。
#IE8 div.whatever { ... }
この種の CSS ハックは不要になります。
CSS の公式の条件付きコメント構文はありません。条件付きの HTML と JavaScript のコメントしかないので、それらを工夫してください ( John Fisherが 1 つの方法を示しています)。
非常によく知られている CSS ハックを使用して条件付き CSS をエミュレートすることもできますが、私はむしろそうしたくありません。ハッキングは、IE の CSS 処理のバグを悪用することを目的としているため、IE の任意のバージョンで壊れたり、予期せず動作したりする可能性があります。
IE が解釈できないルールを使用すると、IE がルールの処理を停止し、他のブラウザで安全に使用できるようになる、このようなハックがあります。
このような:
div.iehack {
margin-right:20px;
voice-family: "\"}\"";
voice-family:inherit;
margin-right:10px;
}
この種のハッキングを行うと、css ファイルがめちゃくちゃになります。IE 用に別のファイルを作成することをお勧めします。一般的な css ファイルでマージンを 10 に設定し、一般的な css ファイルの後に (条件付きで) ロードする必要がある IE 固有のファイルで 20 に設定します。あなたはこれを行う方法を知っており、他の方法で行う理由はほとんどありません.