8

HTML で次のようなことをしている人々を見てきました。

<!--[if IE]>
  <link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->

これは最新のすべてのブラウザーで機能しますか? また、その種の if ステートメントで機能するブラウザーの種類のリストはありますか?

編集

ありがとうロスgt、lt、gte、および lteについて調べるのは興味深いことです。

4

4 に答える 4

11

これはすべてのブラウザで機能します。IE 以外は<!--IGNORED COMMENT-->. コメントに条件節が含まれている場合、IE だけがコメントを読み取ります。この記事を見てください

IE のバージョンを指定することもできます。例えば:

<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->
于 2008-09-05T15:59:02.397 に答える
2

条件付きコメントは、純粋に IE (バージョン 5 以降) 用です。Microsoft の公式ドキュメントはこちらです。それらを使用する場合、最善の戦略は、通常のインクルードの後に​​、条件付きで外部スタイルシートまたは JavaScript ファイルをインクルードすることです。これは、IE では、IE 固有のコードが他のすべてをオーバーライドすることを意味します。他のブラウザでは、コードはコメントとして扱われ、パーサーによって無視されます。

于 2008-09-25T18:10:16.930 に答える
2

Javascript を使用できる場合は、いくつかのオプションがあります。

navigator.appName
navigator.appVersion 

リンク

または、 jQueryなどのライブラリを使用して、より堅牢なものにします。

最後に、 QuirksModeの BrowserDetectオブジェクトを使用できます。

ブラウザの名前とバージョンがわかったら、HTML を挿入してスタイル シートにリンクしたり、他のタグを含めたりできます。

于 2008-09-05T16:33:41.643 に答える
1

Ross の回答に加えて、条件付きコメントを使用して Internet Explorer レンダリング エンジンのみを対象にすることができます。他のブラウザには同様の構造はありません。たとえば、Firefox を対象とする条件付きコメントを作成することはできませんが、Internet Explorer では無視されます。

上記の例と同じ効果を得る方法は、ユーザー エージェント文字列を盗聴することです。次に、そのブラウザに適した CSS ファイルを配信します。互換性のためにユーザーエージェント文字列を変更することがあるため、これは完璧ではありません。

さまざまなブラウザーをターゲットにするもう 1 つの方法は、ブラウザー固有のハックを利用することです。これらは通常、ブラウザのバグに依存しており、バグは修正される可能性があるため、特に厄介です!

私の意見では、ユーザー エージェント スニッフィングは最善のオールラウンド ソリューションです。

于 2008-09-05T16:12:11.523 に答える