4

すべての主要なブラウザーで: 質問が示すように、親<div>コンテナー (高さが設定されていない) は、子要素に合わせて高さを大きくします<img>(たとえば、div. 通常、オーバーサイズは約 3 ~ 5 ピクセルであり、最初は imgmargin-bottomまたは divのように表示されpadding-bottomます。

divただし、絶対配置を使用すると、 の下部がの下部よりimg数ピクセル下にあることが明確に示されます。Web サイトのデザインが損なわれることはないかもしれませんが、特定の状況では克服しなければならないハードルです。ここで、この問題を示すかなり詳細なフィドルを作成しました

  • Web ブラウザーでこの標準的な方法が採用されているのはなぜですか?
  • これは何かを補償するためのものですか?不要のようです。
  • これはバグですか、それともすぐに時代遅れになる機能ですか?

編集:以下の回答者/コメンテーターのおかげで、要素の周りの空白を保持<img>する CSS としてデフォルト で an が扱われる理由がわかりました。display:inlineそれを変更してdisplay:block、要素の周りの空白を削除することで問題を完全に修正します。

注:このオーバーサイズは、イメージの子要素にfloat:leftorfloat:rightなどの CSS プロパティを指定することで回避できますが、これは回避策であり、質問に対する回答ではありません。これが問題になる理由の 1 つは、既にfloatdiv 子画像の前に他の要素がレイヤー化されている場合です (フロート オーバーラップは Firefox、Opera、IE では許可されません。オーバーラップは、CSS設定floatを使用する Chrome と Safari でのみ許可されているようです)。ありがとう!position

4

1 に答える 1

7

画像に display:block を追加します。これで問題は解決すると思います。

于 2012-07-24T16:23:24.830 に答える