とか言っていても、もうしばらくはIE6の牙城が崩れないだろうから、なんとかIE6抹殺以外の解決方法を探してみたいと思います。
はい。出ました。またもや何の解決にもならない方法。
まあ大体は透過PNGなんか使わなくてもサイトは構築出来るんですが、たまーに、ヘッダの背景とかがコンテンツによって変化して、左上のロゴマークは不動。なので透過PNGだと楽。とかいう場合がありますし、画像の上に透過PNGのメニューボタンおいて、それをロールオーバーさせたい、なんてことも、まあこれからは色々あるのではないでしょうか?
まず、透過PNGそのものをIE6で正しく表示出来ないので、それをクリアする必要があります。
iepngfix.js という有名なjsがありますので、まず前提としてこちらを使用します。
2009.09.02追記:iepngfix.jsの元サイトがお亡くなりになられているように見えますね・・・・・代替手段(DD_belatedPNG.js)を用いるか、Binbo-Specialに置いているiepngfix.jsを使ってみるとかしてみてください。
このソースの前半に、
blank: 'http://www.isella.com/aod2/images/blank.gif',
という部分があるのですが、これは「透明GIF」です。透明GIFと組み合わせてPNGを正しく表示させるハック?なので、この透明GIFは自分のサーバにおいて、パスは書き換えた方が、将来的に良いですね。
2009.09.02追記:上記透明GIFへのアドレスがお亡くなりになられているように見えますね・・・・・と言うわけで単なる透明GIFを代わりに用意してパスを書き換えれば良い、だけなのですが、透明GIFの作り方が分からない方は、Binbo-Specialに置いてある透明GIFを使ってみるとかしてみてください。
本家通りの使い方だと、cssで使用する場所とかに
behavior: expression(IEPNGFIX.fix(this));
とかしないといけないので、ものぐさ太郎的には、もうちょっと楽にしたい。
ということで、かなりスマートさが足りないのですが、ちょっと簡単な分かりやすい?スクリプトを書いてみました。
もっとスマートに書けるんだろうけど、jquery.jsの機能を使いこなせていない私は、以下のような方法で実装。
横着でごめんなさい。
jquery.js使用前提で書いてみました。
使いたい方は、こちらからどうぞ。→iepngrollover.js
jquery.js、iepngfix.js、iepngrollover.js という順番で呼び出して、、、、、
ロールオーバーしたい画像のimgタグに、class="rollover" を設定して、ロールオーバー用の画像を用意。
ロールオーバー用の画像は、元が「onago.jpg」だったら、「onago_f2.jpg」といったように、「_f2」を付ける。
PNGを・・・というコーナーですが、個人的にも使いたかったので、jpgもgifもOKOK.
「_f2」がどうしても嫌!って人は、iepngrollover.js の1行目の overImg の値を書き換えましょう。Fireworks野郎的には、_f2が楽ちん。
PNG画像のimgタグに、class="png" を設定するだけ。
透過PNGをロールオーバーしたければ、class="png rollover" のように2個指定すればOKOK.
面倒くさいので、最近サンプルで使用した画像を再利用。
「その1」~「その3」は、透過PNG+ロールオーバー。(class="png rollover")
「rollover jpg」は、jpg+ロールオーバー。(class="rollover")
「透過PNG置いただけ」は、単なる透過PNG置いただけ。(class="png")
ソースがカッコ良くないような気がするが、これが俺様の実力。
まあまあ使いやすいのではないか、と思う訳です。
PNGを背景画像として使いたい&背景画像でrepeatさせたい、という場合は、コチラの記事へ・・・・・→PNGを背景でrepeatさせたい時のIE6対策
OPEN SPACE様
様々な情報がありますが、javascript関連のリファレンスも充実しています。
JQUERY日本語リファレンス
jQueryに関するリファレンスサイト。見やすい!です。
| JavaScript 第5版 | |
![]() | David Flanagan 村上 列 オライリー・ジャパン 2007-08-14 売り上げランキング : 10413 おすすめ平均 ![]() 誤解を招く本 言語としてのJavaScriptに一番踏み込んだ本 JavaScriptのバイブル本Amazonで詳しく見る by G-Tools |
| JavaScript: The Good Parts | |
![]() | Douglas Crockford Oreilly & Associates Inc 2008-05 売り上げランキング : 31572 Amazonで詳しく見る by G-Tools |