IE? - IE6, IE7 and IE8

Net Applicationsの報告によれば、2009年9月におけるブラウザシェアはIEが65.71%で過半数のシェアを確保している。バージョンごとにみるとIE6 24.42%、IE7 19.39%、IE8 16.84%となっており、IE6、IE7、IE8のシェアが拮抗しつつあることがわかる。これまでのシェア変動から推測すると、今後数ヶ月の間は3つのバージョンのIEが似たようなシェアを持った期間が続くことになる。IEが第一シェアだといっても、結果的に3つのバージョンに対応する必要がある。

この状況は、特にCSSのサポートという面で厄介な状況を生み出している。IE8はCSS 2.1への高い準拠を実現しているが、IE7はそうではない。IE6はサポートしている要素やプロパティがさらに少ない。またIE7やIE6は対象の要素やプロパティをサポートしていても、規約が想定している動作と違う動きをするものがある。

Louis Lazaris氏がSmashing MagazineにおいてCSS Differences in Internet Explorer 6, 7 and 8のタイトルのもとIE6、IE7、IE8で使えるCSSについてまとめている。すべてのバージョンでサポートされていないものは掲載からはずされている。IEのどのバージョンで使えるのか見やすく参考になる。紹介されている機能は次のとおり。

セレクタと継承

項目 IE6 IE7 IE8 備考
チャイルドセレクタ × ○ ○ IE7では親と子の間にHTMLコメントがある場合にはチャイルドセレクタは機能しない
チェインクラス × ○ ○ IE6は一見サポートしているように見えるがそうではない
属性セレクタ × ○ ○
隣接セレクタ × ○ ○ IE7では隣接する要素の間にHTMLコメントがある場合にはチャイルドセレクタは機能しない
間接セレクタ × ○ ○

擬似クラスと擬似要素

項目 IE6 IE7 IE8 備考
:hover擬似クラスに続く子孫セレクタ × ○ ○
チェイン擬似クラス × ○ ○
非アンカー要素の:hover擬似クラス × ○ ○
:first-child擬似クラス × ○ ○ IE7ではHTML湖面度が最初の子要素の前にある場合には機能しない
:focus擬似クラス × × ○
:before擬似クラスス × × ○
:after擬似クラス × × ○

プロパティ

項目 IE6 IE7 IE8 備考
ポジション指定からの仮想サイズ × ○ ○ 絶対ポジションにおけるtop、right、bottom、left指定でwidthoyおよびheightを提供
min-height × ○ ○
min-width × ○ ○
max-height × ○ ○
max-width × ○ ○
borderの透過指定 × ○ ○
positionの固定指定 × ○ ○
background-attachmentの固定指定 × ○ ○ IE6は誤ったバックグラウンドセットを持った要素の割合指定に関連して想定していない背景画像の固定をおこなう。そのためroot要素いおいてのみ動作する
inherit × × ○ IE6とIE7ではdirectionとvisibilityに対してのみinheritが適用される
テーブルセルにおけるborder-spacing × × ○
テーブルにおける空セルの表示するempty-cells × × ○
テーブルキャプションの縦方向ポジションcaption-side × × ○
クリッピングのエリア指定 × × ○ IE6とIE7ではカンマを使わない非推奨の記述をする場合には機能する
orphans × × ○
widows × × ○
page-break-inside × × ○
outline × × ○
displayにおけるblock, inline, none以外の指定 × × ○
white-space × × ○

その他のテクニック

項目 IE6 IE7 IE8 備考
@importに対するメディアタイプ × × ○ IE6とIE7でも@importは動作するがメディアタイプが指定されていると機能しない
カウンタ値 × × ○ counter-incrementおよびcontentプロパティ
クオート文字列の指定 × × ○

CSS Differences in Internet Explorer 6, 7 and 8ではさらにIE6やIE7が抱えているバグについてもリストで掲載されている。