スタイルシートを含む使用可能なブラウザー条件のリストはありますか?
-
09-06-2019 - |
質問
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]-->
他のヒント
Ross の答えにさらに追加すると、条件付きコメントでは Internet Explorer レンダリング エンジンのみをターゲットにすることができます。他のブラウザには同様の構造はありません。たとえば、Firefox を対象とする条件付きコメントを作成することはできませんが、Internet Explorer では無視されます。
上記の例と同じ効果を達成する方法は、ユーザー エージェント文字列を盗聴することです。次に、そのブラウザに適した CSS ファイルを提供します。互換性のためにユーザー エージェント文字列を変更する場合があるため、これは完璧ではありません。
さまざまなブラウザをターゲットにするもう 1 つの方法は、ブラウザ固有のハッキングを利用することです。これらは通常ブラウザのバグに依存しており、バグは修正される可能性があるため、特に厄介です。
私の意見では、ユーザー エージェント スニッフィングは最良の総合的なソリューションです。
条件付きコメントは、IE (バージョン 5 以降) 専用です。Microsoft の公式ドキュメントは次のとおりです。 ここ. 。これらを使用する場合の最善の戦略は、通常のインクルードの後に外部スタイルシートまたは JavaScript ファイルを条件付きでインクルードすることです。これは、IE では、IE 固有のコードが他のすべてをオーバーライドすることを意味します。他のブラウザでは、コードはコメントとして扱われ、パーサーによって無視されます。