SmallStyle


2006-01-07

_ Lightbox JS での 背景画像 (overlay.png) の配置場所

IEでの表示例

Lightbox JS を使って画像表示をかっこよくみせてみるで,Firefox だとポップアップした画像の周りが暗くなって見えるのですが,IE で表示させると画像のポップアップのみで,背景はそのままになってしまいました.Lightbox JS の配布元では IE でもちゃんと背景も表示されてるから,うちのサイトでの CSS 周りで何か問題があるのだろうと調べてみた結果,単純に背景画像の,overlay.png のPATHの指定が間違っていたのが問題でした.

Lightbox JS の配布元でダウンロードできる CSS では,IE で透過 PNG を表示させるために以下のようなコードが書かれています.

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="overlay.png", sizingMethod="scale");

Firefox など PNG のアルファチャンネルをサポートしているモダンブラウザでは,

background-image: url(overlay.png);

で,背景を透過してくれるのですが,現在の IE ではサポートされていません( IE 7 ではサポートされる予定).

何が悪かったのかというと,CSS からの画像の読み込みは,CSS ファイルのあるディレクトリがカレントディレクトリで,そこからの相対 PATH を指定するもんだと思い込んでいたものですから,当然のように,AlphaImageLoader の src で指定する画像の PATH も同じだろうと考えていました.ところが,AlphaImageLoader の場合は,現在表示しているディレクトリからの相対 PATH を元に画像を参照するようです.

今回の場合,CSS ファイルと画像ファイルを同じディレクトリに配置したので,Firefox では画像を参照できたけど,IE の場合はそれが参照できていなかったというただそれだけのこと.Web サーバのログを確認すればすぐわかったものの,うっかり見逃しちゃってた.とりあえず,IE でも Firefox でも同じ動きをしてくれるようになったので,やっとすっきりした.

というわけで,このサーバでは overlay.png は theme ディレクトリと同じところに配置しているので,

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="theme/smallstyle-3/overlay.png", sizingMethod="scale");

と指定することで解決できました.


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|