Alpha Transparency PNG - VMLでアルファチャンネルを含むPNG表示
2007年7月9日(月) 08:00
InternetExplorerでアルファチャンネルを含むPNGを表示する場合、AlphaImageLoaderを利用すれば簡単なことですが、VMLを利用した表示方法を紹介します。VMLはInternetExplorerでのみ利用できます。VMLを利用する前に、幾つか既存のドキュメントを修正しておく必要があります。
DOCTYPEの指定
VMLを利用する場合、DOCTYPE宣言をQuirks mode(互換モード)指定をするか、DOCTYPE宣言そのものを記述しないようにします。下記以外にも互換モードはあるので、別途確認してください。
// HTML4.0 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">// XHTML1.0 Strict
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
名前空間とCSS指定
Namespace(名前空間)を下記の要領で追加します。
<html xmlns:v="urn:schemas-microsoft-com:vml">スタイルシートの記述を追加します。behavior以外にも、イメージにリンクが指定された場合、マウスポインタを変更するようにしておきます(デフォルトでは変更されません)。
<style type="text/css">
v\:* { behavior:url(#default#VML); }
a v\:* { cursor:pointer; }
</style>
HTML記述でPNGイメージ指定
<img>タグの変わりにVMLタグを利用して表示させます。イメージ表示部分に下記のHTMLを記述します。画像サイズを指定しないと表示されないので、styleで指定しておきます。
<v:image src="./images/sample.png" style="width:300;height:300;" />今回解説した方法は、ブラウザなど考慮していないため、実際に利用するにはJavaScriptやPHPなどでブラウザ判定を実装する必要があります。VMLに興味のある方は是非チャレンジしてみてください。
関連する記事
- ieFixed HTC - min-width max-widthをIE6で利用する
- Alpha Transparency PNG - VMLでアルファチャンネルを含むPNG表示
- Scroll RSS Icon - スクロールに連動するRSSアイコンの作り方
- Breadcrumb CSS - Appleに習うパンくずデザインCSS
- Array.remove - JavaScriptで指定した値を配列から削除処理
- Array.merge - JavaScriptで2つの配列をマージ処理
- scrollTop scrollLeft - ブラウザのスクロール状態を取得する
- CSSとJavaScriptでmin-width max-width を実装する

