IE8標準モードでVMLを使う方法
これまでIE8標準モードではVMLが使えないと思われてきました。そのため、metaタグを使ってIE7標準モードにする方法などが使われてきましたが、やはりIE8標準モードでもVMLが使えるようにしたいものです。ところが、IE8標準モードでもVMLが使えるようにする方法がありました。
IE8標準モードではCSSの扱いが従来と異なります。これが原因で、IE8標準モードでVMLが有効にならなかったようです。これについては、IEBlogで情報が公開されています。
IEBlog - Site Compatibility and IE8
このページの「Generic CSS Prefix Selectors」欄に情報が掲載されていますが、簡単に言うと、IE8標準モードではCSSのprefixセレクターにワイルドカード(アスタリスク)が使えないため、個々の要素名を明示的に記述しなさいということです。
VMLを使う場合、スタイルシートで v\:* { behavior: url(#default#VML); display:inline-block; } と記述してきましたが、ここに使っている * が原因でIE8標準モードでVMLが有効にならないわけです。IE8標準モードでもVMLを有効にするためには、次のように書き換えます。
v\:line, v\:rect, v\:roundrect, v\:oval { behavior: url(#default#VML); display:inline-block; }
面倒なのですが、上記のように、利用するVMLのタグすべてを明示的に指定します。もちろん、JavaScriptからも制御可能です。
via html5.jp
IEを使わないのが一番の得策。とは、云ってられないのだけど…。
Short URL for this post: http://tmblr.co/ZpoVby7LrQv