SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【CSS】float してると display:inline でも margin、width、height が効く

問題

display:inline すると width, height が効かないが、float とともに使うと widtht, height, margin が効くようになり、ブロック要素のように使える。

むむっ ほんと?

答え

それはIE対策。

float:left すると

要素は,左に浮動するブロックボックスを生成する。内容は,’clear’特性に従い,上から始まって,ボックスの右側に流し込まれる。値が’none’ではない場合,’display’は無視される。

そう、仕様書どおりに実装されていれば、displayは無視される。

なぜfloatした要素にdisplay:inlineするといいよといわれるのかというと、IEの不具合対策のため。

CSSの仕様どおりならば、floatすると、浮動する(通常の流れから外れた)ボックスを生成する。floatした時点でブロック要素扱いになる。

display:inlineするとよいのはIE対策であって、CSSの仕様ではない。

関連するメモ

コメント