バージョン ベクタ
注 : このドキュメントは暫定版であり、変更される場合があります。
バージョン ベクタは、ブラウザの起動時に読み取られるレジストリ キーに格納されている、Windows Internet Explorer の内部バージョン番号を表します。Web 開発者は、バージョン ベクタを使用して、閲覧者が Web サイトの表示に使用しているブラウザを検出できます。ブラウザ検出のベスト プラクティスを理解することで、Windows Internet Explorer 8 クライアントによって表示されるときに、サイトが意図したとおりに動作を続けることを保証できます。
このドキュメントでは、Windows Internet Explorer でバージョン ベクタの値がどのように使用されるかについて説明します。また、推奨されるブラウザ検出手法の実装およびメンテナンスについて、Web 開発者を支援するためのコード例もいくつか示します。
Windows Internet Explorer がバージョンベクタを使用する方法
Windows Internet Explorer では、バージョン ベクタを使用して [ヘルプ] の [バージョン情報] セクションを設定する以外に、条件付きコメントを処理するときにこの値が使用されます。条件付きコメントは、ページの HTML ソース内のコメントのブロックであり、Windows Internet Explorer によってのみ解釈されます。コメントには、1 つ以上の操作、機能、または値が含まれます。
<!--[if gte IE8]>
たとえば、上記のコードは、Windows Internet Explorer Version 8 以上かどうかをチェックするために必要なコメント コードを示しています。"以上" の比較を使用することで、条件が将来のバージョンの Windows Internet Explorer に対応することが保証され、新しいバージョンがリリースされた場合にコードを更新する必要がなくなります。
バージョン ベクタには、マイナー ブラウザ バージョンも含まれます。メジャー ブラウザ バージョン番号をテストする場合、バージョン ベクタは整数です。マイナー ブラウザ バージョンをチェックする場合、バージョン ベクタには小数点と 4 桁の数字が含まれます。たとえば、Windows Internet Explorer 5.5 のリリース ビルドのバージョン ベクタは、5.5002 です。
<!--[if gte IE 5.5002]><p>IE 5 ``以上を使用しています``</p><![endif]-->
このコード例は、メジャー ブラウザ バージョンとマイナー ブラウザ バージョンをチェックするために必要なコメント コードを示しています。これにより、条件をさらに微調整できます。
基本的な HTML コメントと同様に、条件付きコメントには、開くタグと閉じるタグにハイフン ("--") が含まれます。条件はタグの開く部分に指定され、タグの閉じる部分の前に [endif] が配置されます。コンテンツは、コメント タグの内部に配置されます。条件付きコメントをサポートしないブラウザまたはブラウザ バージョンは、これらのコメントとタグ間のマークアップを無視するため、これらのコメントは "downlevel-hidden" (ダウンレベルから見えない) と言われます。ハイフンのない条件付きコメントは、ダウンレベル ブラウザで無視されますが、タグ間のマークアップは処理されるため、"downlevel-revealed" (ダウンレベルから見える) と言われます。
<![if lt IE 5.5]><p>IE 5.5 ``より前のブラウザまたは別のダウンレベル`` ``ブラウザを使用しています``</p><![endif]>
このコード例は、メジャー ブラウザ バージョンとマイナー ブラウザ バージョンをチェックするために必要なコメント コードを示しています。これにより、条件をさらに微調整できます。
バージョンベクタを使用したブラウザ検出
条件付きコメントを使用する場合は、Windows Internet Explorer の特定のバージョンごとに異なるカスケード スタイル シート (CSS) ルールを指定します。この指定によって、Windows Internet Explorer 7 を対象にデザインされた CSS 修正および変更を Windows Internet Explorer 8 クライアントが受け取らないようにすることができます。ユーザー エージェント文字列を使用して、ブラウザ バージョンを検出することもできます。表 1 に、条件付きコメントの作成に使用できる機能、演算子、および値の一覧を示します。
表 1
項目 |
例 |
コメント |
IE |
[if IE] |
現在サポートされている "機能" は、Windows Internet Explorer に対応する "IE" 文字列だけです。 |
値 |
[if IE 7] |
ブラウザの "バージョン" に対応する整数または浮動小数点数。バージョン番号がブラウザ バージョンと一致する場合は、Boolean 値の true を返します。 |
! |
[if !IE] |
NOT 演算子。この演算子は、"機能"、"演算子"、または "サブ式" の直前に配置され、式の Boolean の意味を反転します。 |
lt |
[if lt IE 5.5] |
"未満" 演算子。最初の引数が 2 番目の引数よりも小さい場合に true を返します。 |
lte |
[if lte IE 6] |
"以下" 演算子。最初の引数が 2 番目の引数以下の場合に true を返します。 |
gt |
[if gt IE 5] |
"より大きい" 演算子。最初の引数が 2 番目の引数よりも大きい場合に true を返します。 |
gte |
[if gte IE 8] |
"以上" 演算子。最初の引数が 2 番目の引数以上の場合に true を返します。 |
( ) |
[if !(IE 7)] |
サブ式演算子。Boolean 演算子と組み合わせて使用し、より複雑な式を作成します。 |
& |
[if (gt IE 5)&(lt IE 7)] |
AND 演算子。すべてのサブ式が true に評価される場合に true を返します。 |
| |
[if (IE 6)|(IE 7)] |
OR 演算子。いずれかのサブ式が true に評価される場合に true を返します。 |
true |
[if true] |
常に true に評価されます。 |
false |
[if false] |
常に false に評価されます。 |
次の例では、条件付きコメントを使用して、使用されている Windows Internet Explorer のバージョンと、送信する適切な CSS スタイル シートを判断しています。
<head>
<title>Test Page</title>
<meta http-equiv="X-UA-Compatible" content="IE=8"/>
<!--[if gte IE 8]>
<linkrel="stylesheet" type="text/css" href="/stylesheets/standards.css" />
<![endif]-->
<!--[if IE 7]>
<linkrel="stylesheet" type="text/css" href="/stylesheets/ie.css" />
<![endif]-->
</head>
また、Windows Internet Explorer 7 以上のバージョンに同じスタイル シートを使用する場合は、次のコード例を使用できます。
<head>
<title>Test Page</title>
<!--[if gte IE 7]>
<linkrel="stylesheet" type="text/css" href="/stylesheets/ie.css" />
<![endif]-->
</head>
上記のコード例では、"以上" の比較を使用しています。これにより、コードが将来のバージョンの Windows Internet Explorer に対応することが保証され、新しいバージョンの Windows Internet Explorer がリリースされた場合にコードを更新する必要がなくなります。次に、さまざまな条件ステートメントの例を示します。
<!--[if IE]><p>Internet Explorer ``を使用しています。``</p><![endif]-->
<![if !IE]><p>Internet Explorer ``のアップレベル`` ``バージョンを使用していません。``</p><![endif]>
<!--[if IE 8]><p>Internet Explorer 8 ``へようこそ。``</p><![endif]-->
<!--[if !(IE 8)]><p>Internet Explorer 8 ``を使用していません。``</p><![endif]-->
<!--[if gte IE 7]><p>IE 7 ``以上を使用しています。``</p><![endif]-->
<!--[if (IE 5)]><p>IE 5 (``任意のバージョン``) ``を使用しています。``</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]><p>IE 5.5 ``または`` IE 6 ``を使用しています。``</p><![endif]-->
<!--[if lt IE 5.5]><p>Internet Explorer ``のバージョンをアップグレードしてください。``</p><![endif]-->
<!--[if true]><em>``アップレベル``</em> ``ブラウザを使用しています。``<![endif]-->
<!--[if false]><em>``ダウンレベル``</em> ``ブラウザを使用しています。``<![endif]-->
<!--[if true]><![if IE 7]><p>``このネストされたコマンドは`` IE 7 ``で表示されます。``</p><![endif]><![endif]-->
条件付きコメントおよびバージョン ベクタの詳細については、「条件付きコメントについて」を参照してください。
その他のブラウザ検出手法
ユーザー エージェント文字列は、HTTP トラフィックを通じて Web サイトにレポートされるブラウザの ID です。バージョン ベクタの代わりに、またはバージョン ベクタに加えてユーザー エージェント文字列を使用して、Web サイトの表示に使用されるブラウザを検出できます。ユーザー エージェント文字列の詳細およびユーザー エージェント文字列を使用したブラウザ バージョンの検出方法については、「Windows Internet Explorer がユーザー エージェント文字列として報告する内容」を参照してください。
条件付きコメントを使用する 1 つの利点は、スクリプトが不要であり、Web ページでスクリプトが使用されていない場合はスクリプト エンジンを読み込む必要がないことです。条件付きコメントは、ダウンロードおよび解析フェーズ中に処理されるため、ブラウザを対象としているコンテンツのみが実際にダウンロードされます。条件付きコメントは、他のブラウザ検出手法と自由に組み合わせることができます。