バージョン ベクタ

注 : このドキュメントは暫定版であり、変更される場合があります。

バージョン ベクタは、ブラウザの起動時に読み取られるレジストリ キーに格納されている、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 ページでスクリプトが使用されていない場合はスクリプト エンジンを読み込む必要がないことです。条件付きコメントは、ダウンロードおよび解析フェーズ中に処理されるため、ブラウザを対象としているコンテンツのみが実際にダウンロードされます。条件付きコメントは、他のブラウザ検出手法と自由に組み合わせることができます。