Alternative Design Project

ADP: フロートとマージン

2004年12月09日 17:02 | コメント(4) | トラックバック(0)

floatレイアウトでよく問題になる、floatと各ボックスに指定したmarginの実験をやってみた。まずは、左寄せ用のサンプル右寄せ用のサンプルをごらんあれ。

サンプルは、position: absoluteを指定したul要素内のli要素でボックスを表現し、ブラウザでの挙動を調べてみた。対象としているのは、IE6, Mozilla, Opera, Safariあたりである。

新しく、癖のようなものがわかったところを書いておく。

Opera 7.2とかでは、position: absoluteを指定したul要素の幅を指定しておかないと、li要素のボックスがうまく横に並んでくれないことがある。ここでのul要素はよくあるレイアウトにおけるcontainerの役目を果たしているので、可能な範囲で横幅を指定しておこう。

Windows IE6はやはり、いろいろ足を引っ張る。特に、上記サンプルの(6)を見るかぎり、先に左にfloatしたボックスのmargin-leftや、先に右にfloatしたボックスのmargin-rightは指定してはいけないことになる。フロートの左右マージンが指定値より大きくなる(CSSバグリスト@CSSバグ辞典スレッドより)が発症しているらしい。そこらへんを指定しないですむようにするには、ボックスの開始地点をいじるか、ボックスの中の要素でうまくmarginやpaddingを指定するかしないとならないだろう。どのようなレイアウトにしたいかによって、変える必要がある。

というわけで、ADP: floatレイアウトでつまづかないためのTipsの9.は違っていたことになる。ぎゃーん。のでいまのうちに直しておくことにする。

このほかにも、ブラウザのバグは多い。よくあるようなレイアウトにかぎって、うちでやっているようにTipsとして情報を提供することも重要だが、ブラウザでの確認作業もいつまでたってもなくならないのかもなあ、と思う。

トラックバック(0)

トラックバックURL: http://adp.daa.jp/cgi/mt2/mt-tb.cgi/431

コメント(4)

えく: 2005年04月06日 10:00

http://hail2u.net/blog/webdesign/doubled_margin_bug_at_ie.html
で対処法がありました。displey: inlineを指定すれば何とかなってしまうみたいです。

Momomo: 2005年04月09日 00:47

ありがとうございます。いざというときには利用価値のあるテクニックですね。個人的には、「なぜそこに書いてあるのか、ソースと結果を見ただけでは意味不明なもの」はあまり書きたくないので、使うとすれば本当にいざというときだと思います。<以下雑談>とはいっても、私の場合「そこに書けそうだけれど、書いてはいけないもの」とか「意味は通じるけれどなくてもよさそうに見えて、でも実は書かないとはまるもの」は許容しているので、いいかげんな判断基準に基づいてると思っていいです。

えく: 2005年05月01日 22:09

堂でもいいことではあると思いますが、このエントリってWebDesignの方が良くないですか?

Momomo: 2005年05月01日 22:48

ありがとうございます。カテゴリ設定しました。

コメントの内容確認のため、反映されるまで時間がかかる場合があります。e-mailはサイトに掲載されません。

このページの先頭へ