2011-02-01 41 views
9

高さの指定がなければ、単一のイメージしか含まない<div>(または<p>または他の同様の要素)は、それより少し上になります。 Firefoxでは4px、Chromeでは5px高くなっているようです(Firebugとそのクローム同等物によると)。余分なスペースが画像の下に追加されます。ブロックレベルの要素がその要素に含まれる画像よりも高いのはなぜですか?

明らかに私はdivに高さを割り当てることでこれを解決できますが、そのスペースがそこにあり、それを排除する方法がある理由を理解したいと思います。

答えて

18

Imageは、ラインレベルの設定に準拠しており、デフォルトでテキストのベースラインに設定されています。

あなたはvertical-align: bottomを持っている画像を設定する場合は、それが下降ライン(テキスト行の一番下)

他のオプションはdisplay: blockに画像を設定し、このすべてのインラインギミックをスキップすることで画像を配置します

6

CSSに追加:デフォルトimgことで

img {display: block;} 

display:inlineので、すべてのテキストの行に関連するものを持っています。

+0

一般的には、指定したければすべての画像のブロックに切り替わります - クラスセレクタまたは親要素へのリレーションを導入する – gertas

0

を含むline-height: 0px;を追加します。

imgdisplay:blockに設定すると動作しますが、それ以外の場所にある場合は、画像を隠して表示するにはdisplay:none/display:inlineと表示されます。

関連する問題