IE 8 では独自実装や先行実装の CSS の書き方が変わるようです
IEBlog : Microsoft CSS Vendor Extensions によると、IE 8 では、Microsoft の独自拡張のプロパティーや、CSS 3 などの (Candidate Recommendation に至っていない) 先行実装のプロパティーに対して、-ms- と接頭辞をつけるようになるみたいです。(Mozilla では -moz-, Opera では -o- や -wap- を接頭辞に使っています。)
なので、IE 8 では、独自実装や、先行実装のプロパティーを使う時には -ms-interpolation-mode のように -ms- をプロパティーの接頭辞として追加しなくてはなりません。
ただし、IE 8 でも Compatibility View (IE 7 モードみたいなの) を使っている時には今までのように接頭辞がなくても認識されるようです。
変更されるプロパティーは以下のとおりです。
| Property | Type | W3C Status |
| -ms-accelerator | 独自実装 | |
| -ms-background-position-x | CSS 3 | Working Draft |
| -ms-background-position-y | CSS 3 | Working Draft |
| -ms-behavior | 独自実装 | |
| -ms-block-progression | CSS 3 | Editor’s Draft |
| -ms-filter | 独自実装 | |
| -ms-ime-mode | 独自実装 | |
| -ms-layout-grid | CSS 3 | Editor’s Draft |
| -ms-layout-grid-char | CSS 3 | Editor’s Draft |
| -ms-layout-grid-line | CSS 3 | Editor’s Draft |
| -ms-layout-grid-mode | CSS 3 | Editor’s Draft |
| -ms-layout-grid-type | CSS 3 | Editor’s Draft |
| -ms-line-break | CSS 3 | Working Draft |
| -ms-line-grid-mode | CSS 3 | Editor’s Draft |
| -ms-interpolation-mode | 独自実装 | |
| -ms-overflow-x | CSS 3 | Working Draft |
| -ms-overflow-y | CSS 3 | Working Draft |
| -ms-scrollbar-3dlight-color | 独自実装 | |
| -ms-scrollbar-arrow-color | 独自実装 | |
| -ms-scrollbar-base-color | 独自実装 | |
| -ms-scrollbar-darkshadow-color | 独自実装 | |
| -ms-scrollbar-face-color | 独自実装 | |
| -ms-scrollbar-highlight-color | 独自実装 | |
| -ms-scrollbar-shadow-color | 独自実装 | |
| -ms-scrollbar-track-color | 独自実装 | |
| -ms-text-align-last | CSS 3 | Working Draft |
| -ms-text-autospace | CSS 3 | Working Draft |
| -ms-text-justify | CSS 3 | Working Draft |
| -ms-text-kashida-space | CSS 3 | Working Draft |
| -ms-text-overflow | CSS 3 | Working Draft |
| -ms-text-underline-position | 独自実装 | |
| -ms-word-break | CSS 3 | Working Draft |
| -ms-word-wrap | CSS 3 | Working Draft |
| -ms-writing-mode | CSS 3 | Editor’s Draft |
| -ms-zoom | 独自実装 |
例えば、IE 7 までは、
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);
のような書き方をしていましたが、IE 8 では、
- プロパティの接頭辞に -ms- をつける
:,=,,は使えないのでクォーテーションで囲んで文字列にする
という点に沿って
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)";
のようになります。
IE 7 までと IE 8 以降で、同じように動作させるためには、IE 7 以下用のコードと、IE 8 用のコードを一緒に書くことで実現が可能です。例えば、以下のように記述します。
#transparentDiv {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
opacity: .5;
}
IE チームが Web 標準にとても積極的なのが感じます。とてもいいことだと思うのですが、いままで filter などの一部の独自実装はたまに使うことがあったのですこし心配です。
以前、IE 8 の座談会が行われた時に、CSS 3 の先行実装は積極的には行わないといったことを Microsoft のかたから聞いた気がするのですが、接頭辞を用意するようですし、-ms-border-radius とか追加してほしいなぁと思っていますがどうなんでしょうか…。
11日に開催される CSS Nite in Shinjuku, Vol.2 で質問 + 要望してみようと思います。

トラックバックURI
http://www.yomotsu.net/wp/wp-trackback.php?p=455
コメント
2009/09/25に気になったこと | debesoさんからのコメント
2009年9月26日 0:05
[...] IE 8 では独自実装や先行実装の CSS の書き方が変わるようです | ヨモツネット IE8でfilterとかする際には"-ms-"のPrefixを付与しておく [...]コメントフォーム