てぃーだブログ › CE CreativeSection › 備忘録 › IE6はやはり...

2011年04月28日

IE6はやはり...

やぁ、☆サンゴーなり。

今日は備忘録。
cssの。


position:absolute; bottom:0;で、ドキュメントの下部にずっと張り付くフッターを作ったとする。
基本、ドキュメントの高さが可変することはあまりない。
だが、縦アコーディオンや何某かでドキュメントの高さが変更された(高くなった)場合、
この「absolute,bottom:0による下部張り付き」がIE6ではおかしくなる。

具体的には、ドキュメントの高さが変更されても、フッターが初期位置から動かない。
ドキュメントの下部に追従していかなくなる。

ブラウザのサイズを変更すると、忘れていたかのように下部へ移動する。

その解決方法(暫定)
入社9ヶ月目のKK(技術は神クラス)が発見してくれた方法は以下の通り。


・bottomを0ではなくautoにする。


これで、ドキュメントの高さが変更されても、フッターは下部に追従する。

ただ、これだけではうまく行かず、フッターの高さ分、ドキュメント全体を囲むdivの下に入り込んでしまう。
潜り込むのではなく、その高さ分のブロックがdivの下に隙間0で入る感じ。
bottom:auto;にすると、全ブラウザでその現象が起こる。

ので、cssハックを用いてbottom:auto;をIE6にだけ適用し、
さらにmargin-topもIE6にだけ適用する。
このmargin-topには、フッターと同じ高さの分だけネガティブマージンを入れる。

例えば、フッターの高さが100pxだった場合、このフッターに適用するcssのプロパティは以下の通りになる。


bottom:0; //全ブラウザに適用
_bottom:auto; //アンダースコアハックでIE6にのみ適用
_margin-top:-100px; //こちらもIE6にのみ適用、フッターの高さ分ネガティブ


これで、望んだとおりの表示になる。

が、実際は完璧に上手くいくわけではなく、
本来の目的である、「コンテンツ内容が少なくてもフッターは常にドキュメント(ウィンドウ)の下部にある」がちゃんと機能しなくなる。
隙間開いちゃうんですよね。ははは。
恐らく、コンテンツの下にくっついてるんだろうなーと。
だから「暫定」。
もう少し突き詰めて、どうにかこうにか。
現状での解決方法として、ドキュメント高に可変が生じるページのフッターdivにstyle属性で上記のcssを適用するっていう方法もあったりする。
が、なんか負けた気がするので今回は採用見送り。

っていうか、生みの親(マイクロソフト)も見放したIE6にそこまで手をかけるアレもないっちゃぁないんですが、やっぱりレイアウトが崩れるような大きなバグ?を見つけたのなら放置はできまへんよね。
それに、未だにIE6ユーザーが半数近く占めているわけですし。

ホント、WEB屋泣かせです。。。

しっかしまぁ、文章で書くだけじゃすごく伝わりにくい事に今気付きました。
が、キャプチャ画像は無い!です。

あくまで備忘録。
その割にはダラダラ長いですが。


でわ。








同じカテゴリー(備忘録)の記事
8区
8区(2010-10-05 13:30)


Posted by CE CreativeSection at 17:08│Comments(0)備忘録
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。