1

IEブラウザと非IEブラウザに別々のルールがあるスタイルシートに慣れてきました。たとえば、私はCSS3 Pieを使用して、IEで丸みを帯びた角とグラデーションを生成しています。

問題は、IE 9が丸みを帯びた角とグラデーションをサポートしており、そのような回避策をもう必要としないことです。動作がIE8にのみ適用され、IE 9には適用されないように、スタイルシートを書き直すにはどうすればよいですか?

ありがとう!

編集:これは、IE9のルールが冗長であるCSS3Pieサイトの例です:http: //css3pie.com/demos/tabs/

4

3 に答える 3

5

通常のアプローチは、条件付きコメントと、そのバージョンごとに個別のパッチ スタイルシートを使用することです。

<!--[if IE 7]><style type="text/css">@import "ie7-kludges.css";</style><![endif]-->
<!--[if IE 8]><style type="text/css">@import "ie8-kludges.css";</style><![endif]-->
<!--[if IE 9]><style type="text/css">@import "ie9-kludges.css";</style><![endif]-->

そうすれば、メインのスタイルシートで標準の CSS を使用してから、IE の各バージョンがそれ自体で動作するようにするために必要なあらゆる決まりごとやナンセンスを重ねることができます。通常、IE の各バージョンには異なるクラッジが必要なので、それらを異なるスタイルシートに入れます。

于 2011-04-14T04:33:35.277 に答える
1

ここで答えのいくつかを参照してください有効なCSSでIE7とIE8をどのようにターゲットにしますか?

そしてここでIE8cssセレクター

于 2011-04-14T04:27:46.303 に答える
1

オリジナルが見えない場合、何かを書き直す方法を説明するのは難しいです。一般に、IEを処理するための一般的なベストプラクティスは、何らかの形式でIEの条件付きコメントを使用することです。私が通常行うことは、上記のコメントを介して、IEの特定のバージョンに一致するクラスでbodyタグを書き出すことです。したがって、IE7の場合、私はこれで終わる可能性があります:

<body class="ie7">

そうすれば、私のCSSでは、ハッキングに頼ったり、複数のcssファイル間でスタイルを管理したりすることなく、IE7に独自のスタイルを与えるために特異性を使用できます。

.something {...style for good browsers...}
.ie7 .something {...fix IE 7 here...}
于 2011-04-14T04:28:05.730 に答える