Introduce
この記事の読了時間:約7分49秒
いまだ絶大なシェアを誇るIE6(Internet Exproler 6)ですが、WEB制作者ならご存知の通り、さまざまなバグ・不具合を内包しております。
・CSSでfloatしたブロックのmarginが倍になる。
・後方互換モードの場合、text-alignが子要素にまで影響する。
・透過png画像が透過されない。
上記以外にも、それはいくつもの制作者泣かせの問題があり、業界内では「IE6氏ねばいいのに」とまで言われているブラウザですが、前述の通りシェアは絶大なので、対応しないワケにもいかず。
すでにいくつもの対応策が出回っておりますが、その中でも自分的に一番オススメするのが、「DD_belatedPNG.js」を使用する方法です。
有名どころの対応策を併記・比較しながら、どこがオススメなのかを含めてエントリーしたいと思います。
これはJavaScriptを使わず、CSSだけで対応させる場合に有効な方法です。JavaScriptはどうしても使いたくなかったり、CSS以外いじれない状況の場合は、この方法がベストかもしれません。
IE6には透過png表示の為に、独自のCSSフィルターとして「AlphaImageLoader」というものがあります。これはDirectXを使用して、背景と画像の間に画像を配置する事で透過を再現するというものです。
この「AlphaImageLoader」フィルターをpng画像に適用することで、他ブラウザと同様に透過png画像を表示させます。
ある意味、最も仕様に忠実な対応方法ですが、使い勝手や汎用性を考えるとあまりオススはできません。
導入や使用に関する情報も多数あり、さまざまなサイトで使用されている実績も持つ、IE6透過png対応策の王道ともいえるこの方法。
原理としては、前述の「AlphaImageLoader」を、JavaScriptを用いて必要箇所に適応させるものです。
もう少し詳しく書くと、AlphaImageLoaderフィルターを使用した「iepngfix.htc」というスクリプトを、JavaScriptを用いて使用するものになります。
AlphaImageLoaderフィルターを直接使用する際の欠点、「ブロック要素の背景画像に使用すると、そのブロック内のリンクが機能しなくなる」という部分を補い、JavaScriptとして独立しているため、新規サイト制作時にも流用できるというスグレモノ。
ただし、上記の通り基本はAlphaImageLoaderフィルター+iepngfix.htcなので、これらの不具合が継承されている部分もあります。
こちらは今後主流になっていきそうな薫香プンプンの方法です。
このJavaScriptを導入し、pngの画像名を「○○-trans.png」とするだけで、IE6でも綺麗に透過されます。
このスクリプトは透過pngの対応をはじめ、前述のIE6独自のCSS諸問題を解決するためのもので、いうなれば「IE6がマトモになるように改造しちゃうぉ☆」というコンセプトのスクリプトです。
なので、もしすでにCSSなどでIE6対応ハックを使用している場合、このスクリプトが影響してしまい、表示がおかしくなる場合があります。
新規で制作する場合には問題ないですが、既存サイトでの導入は少し難しいかもしれません。
これら以外にもたくさんの透過png対応策があります。ここからはいくつか箇条書き系形式で紹介します。
上記の対応策は基本的にAlphaImageLoaderフィルターを使用しており、そのシステム上どうしても描画が重くなる。
さらに背景リピートに対応していなかったり、余計なファイルをいくつも用意しなければいけなかったりと、「IE6憎し」の感情ばかりが高ぶってしまう。
しかし、ここで紹介する「DD belatedPNG.js」である(やっと本題にたどり着いた...)。
これは前述の「AlphaImageLoader」ではなく、「VMC」というものを利用して透過png画像を描画するものである。
処理が重い・背景リピートできない・リンクが機能しない、といったAlphaImageLoaderが根本にある故の問題点がそもそもこの「DD belatedPNG.js」には存在しないのである。
導入も簡単で、ライセンスもMIT。個人的にはこれで透過png問題の最終回答としました!
>> 「DD_belatedPNG.js」の詳細な使用法と注意点を追加エントリーしました。
関連する記事
同じカテゴリーの記事
smkn より:
2009/05/07 8:50 PM
>ダイエットに成功した方
こちらこそありがとーございます!
これからもお役に立てるような記事を書くべく、邁進する所存でございます☆
Thanx a lot!
Mike より:
2009/07/14 1:27 AM
I got jacked on craigslist by some jerkwad using a cell phone line. Jerkwad was speechless when I got his contact info and paid a visit lol!
Marissa より:
2012/10/09 2:14 PM
At this time it seems like WordPress is the top blogging platform available right now.
(from what I’ve read) Is that what you’re using on your blog?
teeth braces
smkn より:
2012/10/09 2:27 PM
Hi Marissa! Thanks for the comments.
This blog is using WordPress.
With This Diet I Lost Thirty Póunds in Under a Month より:
2009/05/07 2:57 AM
Hi, interesting post. I have been wondering about this topic,so thanks for blogging. I will certainly be subscribing to your posts. Keep up the good posts