すべての主要なブラウザーで: 質問が示すように、親<div>
コンテナー (高さが設定されていない) は、子要素に合わせて高さを大きくします<img>
(たとえば、div
. 通常、オーバーサイズは約 3 ~ 5 ピクセルであり、最初は imgmargin-bottom
または divのように表示されpadding-bottom
ます。
div
ただし、絶対配置を使用すると、 の下部がの下部よりimg
数ピクセル下にあることが明確に示されます。Web サイトのデザインが損なわれることはないかもしれませんが、特定の状況では克服しなければならないハードルです。ここで、この問題を示すかなり詳細なフィドルを作成しました。
- Web ブラウザーでこの標準的な方法が採用されているのはなぜですか?
- これは何かを補償するためのものですか?不要のようです。
- これはバグですか、それともすぐに時代遅れになる機能ですか?
編集:以下の回答者/コメンテーターのおかげで、要素の周りの空白を保持
<img>
する CSS としてデフォルト で an が扱われる理由がわかりました。display:inline
それを変更してdisplay:block
、要素の周りの空白を削除することで問題を完全に修正します。
注:このオーバーサイズは、イメージの子要素にfloat:left
orfloat:right
などの CSS プロパティを指定することで回避できますが、これは回避策であり、質問に対する回答ではありません。これが問題になる理由の 1 つは、既にfloat
div 子画像の前に他の要素がレイヤー化されている場合です (フロート オーバーラップは Firefox、Opera、IE では許可されません。オーバーラップは、CSS設定float
を使用する Chrome と Safari でのみ許可されているようです)。ありがとう!position