marginの値が2倍になる [ Develop, Nucleus ]

これ前にも遭遇していたのだけど、またはまってしまった・・・。
ということでメモ。

Windows/IE5.5、6.0において、float指定した要素にmarginを設定するとそのmarginの値が約2倍になる。この対応策としてはfloat定義した要素にmarginを設定しない。

詳しくはこちらへ。スタイルシートの限界

ちなみに"clear: both;"が入っていても同様の症状が発生するので注意。

あとmarginにマイナス指定にして上にかぶせるようにして回避する方法もあるようだけど、これをすると下に位置する要素のテキストなどが選択できなくなる場合がある。この辺詳しいことはわからないけど、経験的にそうなるということだけメモしておく。(よくブログで本文が選択できない(もしくはどうやっても全選択みたいになってしまうというケースはこれが原因か、position:absoluteが原因な気がする)

トラックバック

このエントリーのトラックバックURL:
http://www.img8.com/mt/mt-tb.cgi/1880

この一覧は、次のエントリーを参照しています: marginの値が2倍になる:

» CSSDesign from zdiv.org (PukiWiki/TrackBack 0.3)
marginの値が2倍になる 左は左寄せ,右は右寄せでコンテンツを配置する際, タイトルのバグに遭遇した. http://blog.img8.com/... [詳しくはこちら]

コメント

フロートした要素のマージン2倍バグは有名ですね。これは対象要素に
display:inline;
を指定することで回避できます。このとき、floatの指定より先にこれを書いてください。

floatが指定された要素のdisplayプロパティは問答無用でblockとみなされるのが仕様ですが、なぜかIEでは先に指定したdisplayプロパティの値が影響し、なんかマージンが正常な(2倍でない)値になります。

私もよくはまりますわ。

でもブラウザごとの若干の違いはスルーしてますが。

>display:inline;
おぉ、これは知りませんでした。なるほど、これをするとmargin設定のためだけのdivとか作らなくてもいいですねぇ・。
なんかこういうノウハウってみんなたくさん抱えていると思うんですが、なかなかうまく共有できないもんですねえ・・。

コメントを投稿