http://www.lepracaun.info/blog/

WebクリエイターLepracaunのサイトです。 Ajax、Flash、Silverlightなど、RIAを実現するためのツールやスクリプトについての話題を取り上げていきます。

« フォントシンボルのライブラリ共有化 | メイン | 第3回大阪IT飲み会に参加してまいりました。 »

2008年4月29日

画像拡大スクリプト「FancyZoom」でレイアウトが崩れる件

先日の記事『シンプルな画像拡大スクリプト「FancyZoom」』で紹介した「FancyZoom」ですが、IEで自分のブログを見たら、ヘッダー部分のレイアウトが崩れていました。

私は普段、Firefoxを使用しているため、IEのチェックが怠りがちで、レイアウト崩れやJavascriptのバグに気づかないことが多々あります。本当は最低でもIE6、IE7、Firefox、Safariあたりはチェックしなくちゃいけないんですけどね。

今回もまさにそのケース。
原因は「FancyZoom」が、bodyタグの直下にdivとtableをひそかに追加しているため。

私のブログの場合、コンテンツ領域をdiv#containerにmargin-top:30pxを指定していました。
「FancyZoom」が追加したdivの高さやポジションの指定のせいで、隣接する要素がうまく取得できず、マージンを取れなかったのが原因です。

Firefoxの拡張「Firebug」を使って判明。

fancy_bug.gif

div#ZoomSpin、div#ZoomBox、div#ZoomCapDiv、div#ShadowBoxという4つのdivに加えて、div#ZoomCapDiv、div#ShadowBoxの中にはtableが追加されています。

こんなときFirebugは便利ですね。
IEにも同様の機能と称する「DebugBar」っていうのがあるんですけど、DOMのツリー表示はできるものの、現時点のバージョンV5.0.2では要素の編集まではできません。
その上、幅の狭いサイドバーに表示されるので、ソースコードが非常に見づらい。しかもなぜか、タグが大文字に変換されていますし・・・
ただ、Javascriptのソース表示はありがたいですね。

同じくDOMツリーを表示して、なおかつ要素の編集機能があるのが「Internet Explorer Developer Toolbar」。マイクロソフト純正です。
CSSのプロパティやHTMLの要素を削除したり追加したりと・・・いわゆるデバッギングにはこちらのほうが便利。

話が逸れましたが、結局強引に自分とこのCSSを修正して緊急対応しました。
marginで余白を取れないため、paddingで余白を取るという、いかにも素人っぽい解決方法。
しかし、いろいろ試したものの、IEで「FancyZoom」によるレイアウト崩れを直す方法が見つかりませんでした。
また、追々調査していこうと思います。

投稿者 lepracaun : 2008年4月29日 11:55このエントリーをはてなブックマークに追加 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをECナビ人気ニュースに追加 このエントリーをBlogPeople Tagsに追加 このエントリーをBlogPeople Instant Bookmarkに追加 このエントリーをPingKingポッケに追加 このエントリーをFC2ブックマークへ追加

トラックバック

このエントリーのトラックバックURL:
http://www.lepracaun.info/mt4/mt-tb.cgi/111

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)