SSI : Internet Explorerと、それ以外のブラウザでスタイルシートを別々にする

書式

<!--#if expr="(${HTTP_USER_AGENT} = /MSIE/) && (${HTTP_USER_AGENT} != /Opera/)" -->
IEの場合のスタイルシート定義
<!--#else -->
IE以外の場合のスタイルシート定義
<!--#endif -->

説明

Internet Explorerと、それ以外のブラウザでスタイルシートを別々に読み込ませるにはユーザーエージェントが格納されている環境変数HTTP_USER_AGENTを参照しブラウザを判別します。Internet Explorerの場合にはMSIEという文字列が含まれているので、正規表現を使ってマッチするかどうか調べます。ただし、Operaなどのブラウザではユーザーエージェント文字列内にMSIEという文字が存在するため、これを排除します。&&と条件比較を使ってOperaの文字列がある場合のみ除外します。マッチした場合には文字を表示するようにします。<!--#else -->までに<link>タグを使ってInternet Explorerのスタイルシートを読み込みます。サンプルでは<!--#endif -->までの範囲に<link>タグを指定しInternet Explorer以外のブラウザ用のスタイルシートを読み込ませています。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=shift_jis">
<title>Internet Explorerと、それ以外のブラウザでスタイルシートを別々にする</title>
</head>
<body>
<!--#if expr="(${HTTP_USER_AGENT} = /MSIE/) && (${HTTP_USER_AGENT} != /Opera/)" -->
<link href="ie.css" rel="stylesheet" type="text/css">
<!--#else -->
<link href="etc.css" rel="stylesheet" type="text/css">
<!--#endif -->
<br>
 Internet Explorerではie.cssファイルが読み込まれ背景色が黄色になります。それ以外のブラウザではetc.cssファイルが読み込まれ背景色は灰色になります。
</body>
</html>