HTML で次のようなことをしている人々を見てきました。
<!--[if IE]>
<link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->
これは最新のすべてのブラウザーで機能しますか? また、その種の if ステートメントで機能するブラウザーの種類のリストはありますか?
編集
ありがとうロス。gt、lt、gte、および lteについて調べるのは興味深いことです。
HTML で次のようなことをしている人々を見てきました。
<!--[if IE]>
<link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->
これは最新のすべてのブラウザーで機能しますか? また、その種の if ステートメントで機能するブラウザーの種類のリストはありますか?
編集
ありがとうロス。gt、lt、gte、および lteについて調べるのは興味深いことです。
これはすべてのブラウザで機能します。IE 以外は<!--IGNORED COMMENT-->
. コメントに条件節が含まれている場合、IE だけがコメントを読み取ります。この記事を見てください
IE のバージョンを指定することもできます。例えば:
<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->
条件付きコメントは、純粋に IE (バージョン 5 以降) 用です。Microsoft の公式ドキュメントはこちらです。それらを使用する場合、最善の戦略は、通常のインクルードの後に、条件付きで外部スタイルシートまたは JavaScript ファイルをインクルードすることです。これは、IE では、IE 固有のコードが他のすべてをオーバーライドすることを意味します。他のブラウザでは、コードはコメントとして扱われ、パーサーによって無視されます。
Javascript を使用できる場合は、いくつかのオプションがあります。
navigator.appName
navigator.appVersion
または、 jQueryなどのライブラリを使用して、より堅牢なものにします。
最後に、 QuirksModeの BrowserDetectオブジェクトを使用できます。
ブラウザの名前とバージョンがわかったら、HTML を挿入してスタイル シートにリンクしたり、他のタグを含めたりできます。
Ross の回答に加えて、条件付きコメントを使用して Internet Explorer レンダリング エンジンのみを対象にすることができます。他のブラウザには同様の構造はありません。たとえば、Firefox を対象とする条件付きコメントを作成することはできませんが、Internet Explorer では無視されます。
上記の例と同じ効果を得る方法は、ユーザー エージェント文字列を盗聴することです。次に、そのブラウザに適した CSS ファイルを配信します。互換性のためにユーザーエージェント文字列を変更することがあるため、これは完璧ではありません。
さまざまなブラウザーをターゲットにするもう 1 つの方法は、ブラウザー固有のハックを利用することです。これらは通常、ブラウザのバグに依存しており、バグは修正される可能性があるため、特に厄介です!
私の意見では、ユーザー エージェント スニッフィングは最善のオールラウンド ソリューションです。