この記事は賞味期限切れです。(更新から1年が経過しています) 透過PNGの処理が下手くそなのは、IE6だけではなく、IE7/8も同様です。 IEで透過PNGをあてた要素のopacityを弄ると、周りがグレーがかって汚くなります。 この現象はよく知られていると思いますが、今日はこの不具合の治し方のメモを記しておきます。 サンプルコード 例えば、こんなコード。 <style> .test { display:block; width:128px; height:128px; background:url(./test.png) 0 0 no-repeat transparent; } .test:hover { background-image:url(./test-hover.png); } </style> <a href="#" class="test"></a> test.pngとte
以前もこの「DD_belatedPNG.js」に関してはエントリーしましたが 『IE6で透過pngを表示させるオススメscript、「DD_belatedPNG.js」』、あまりの素晴らしさにオススメするだけして使用法とか注意事項など大事な部分に触れずじまいでした。 この素敵な透過png対応策であるDD_belatedPNGちゃんですが、img要素に使用する際にも、div要素やp要素等の背景画像に対して使用する際も、ほんのちょっとしたクセがあります。 なので、今回はこの偉大なる「DD_belatedPNG.js」の使用方法と、使用に関するちょっとした注意点などをエントリーしようと思います。 DD_belatedPNGの使用法と注意点 1.使用するための準備 まずはこの「DD_belatedPNG.js」自体をダウンロードしないコトには始まりません。 配布元のDrew Diller’s bl
透過PNGに対応したロールオーバーのサンプル。メニュー画像は半透明になっており背景が透けている。IE6を含むクロスブラウザーに対応している(画像クリックでサンプルページを表示します) ロールオーバーの基本部分をおさらい 「透過PNG対応」といっても、IE6以外のブラウザーでは単に透過PNG画像を用意するだけですので、通常のロールオーバーと変わりません。まずは前回のおさらいをかねて、通常のロールオーバーを作成しましょう。以下のようなHTML/XHTML(以下、HTML)を用意します。メニューはul/li要素で記述し、img要素のclass属性には「rollover」を設定します。ここでは、次のような半透明の透過PNG画像を用意し、img要素のsrc属性に指定しています。 ▼サンプル01(HTML部分) <ul> <li><a href="#"><img src="images/jquery.
alphafilter.jsが透過pngのロールオーバーに対応 IE6用の透過pngライブラリ「alphafilter.js」が透過pngのロールオーバーに対応しました。 透過機能はIE6で画像の拡張子がpngの場合のみですが、ロールオーバーはすべてのブラウザ、jpg、gif、png形式の画像で利用いただけます。 img要素の場合class属性に「btn」と付ければロールオーバーの処理を行います。 <img src="./sample.png" class="btn" alt="" /> sample.pngの場合はsample_on.pngのように拡張子の前に「_on」が付いた画像をロールオーバー時に表示します。 透過機能と合わせて利用する場合は、以下のように指定します。 <img src="./sample.png" class="alphafilter btn" alt="" />
最近はアルファチャンネルを含むPNG画像を利用したサイトが増えてきたように感じます。 2008年9月号のWeb Designing誌でも特集が組まれたりと、関心も高まっているようです。 ただ、そこで問題となるのはIE6のアルファチャンネル問題。 何らかの手段でこれを解決する必要があります。 少し前の仕事でこの問題を解決する必要があり、いくつかのライブラリを試してみたので、それをまとめてみます。 なお、img要素ではなく、CSSの背景画像で使用する場合として検証しました。 img要素にだけ適用したい場合には、もっとシンプルな方法があるかもしれません。 概ね共通する事 標準準拠のCSSのみでは不可能 IEの独自拡張の、filterプロパティを使う必要があります。 CSS内に記述する方法やhtcファイルを使う方法、JavaScriptを使う方法でも、結果的にはこのfilterプロパティのAlph
例えばCSSclip(http://www.cssclip.com/)で紹介されているような先進的なWebデザインでよく使われているのがPNG画像。特徴として、画像内に透明度の情報を含むことが可能ですので、うまく使えば透明感あるWebデザインを作れます。 ただ、今もなお相当なブラウザシェアを誇る(?)InternetExplorer6(以下IE6)ではPNGの透明度情報をサポートしていないため、Web制作者は色々と悩まされてきました(「IE6 PNG」で検索すると悩みの痕跡が分かるはず?)。 しかし! 2008年7月、そんな問題に終止符を打つかもしれないライブラリが登場していました。 IE PNG Fix 2という名前だそうです。 IE6 透過PNG表示、IE PNG Fix 2登場| エンタープライズ | マイコミジャーナル IE6でも、透明度情報を含んだPNG画像をきちんと表示出来るだ
IE PNG Fix 2.0 Alpha 4 This script adds near-native PNG support with alpha opacity to IE 5.5 and 6. Now you can have full translucency and no more ugly grey borders! Full CSS background positioning and repeat are supporting (including CSS sprites). It requires only one line in your CSS file, and no changes to your website HTML. <IMG> tags and background images are both supported. Script License Ag
IE7がPNG画像に対応しましたが、まだまだIE6ユーザーも多いため、実際のところまだしばらくPNG画像は使えないのが現状です。 色々なところでPNGをIE6に対応させるスクリプトが配布されていますが、ブロックレベルに内包されているaタグのリンクが機能しなくなる、img直置きに対応していないなど、弱点がいくつかあるのが現状です。 何とかできないものかと、先日会社のプログラマーの方と試行錯誤してみたところ、意外とあっさり完全に対応させることに成功いたしました。 これでデザインの幅が大幅に広がった今日この頃です。 手順1 まず、以下のサイトよりiepngfix.jsをダウンロードしてください。 透過PNGとIEとIE7 ソースの<head>~</head> に以下のソースを記述し、スクリプトを読み込みます <script src="xxx/iepngfix.js" type="“text/Ja
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く