2010-02-23 47 views
3

這個div將具有104.5px一個計算高度(在最近的鉻,FF和IE)爲什麼包含圖像的DIV的高度膨脹4.5px?

<div><img src="" height="100px" /></div> 

這個div將具有100像素

<div style="overflow:auto;"><img src="" height="100px" style="float:left;" /></div> 

我用螢火蟲一個計算高度看DIV和IMG,並且兩個IMG對於邊距,填充和邊界都有0,但計算出的高度在某種程度上比第一個實例大4.5px。

這是爲什麼?當我嘗試使用一致的垂直網格佈局頁面時,它會對我產生影響。理想情況下,我想不必漂浮imgs。

我試着在這裏看看==>http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.7.2我甚至嘗試過vspace = 0,但是這並沒有改變任何東西。

感謝您的幫助!

+0

爲我的FF3.6渲染爲100px高度。你有其他可能導致問題的風格嗎? –

+0

是否有任何填充或邊距應用於div? –

+0

沒有其他syles應用。我刪除了樣式表,並使用了我提供的代碼。所以沒有填充或應用於DIV的邊距,也沒有使用外部樣式表。 O.K.W - 第一個例子中箱子模型的計算高度爲100px? –

回答

2

客戶端包含他們自己的樣式表,在嘗試執行任何像素完美的佈局或跨瀏覽器調試之前,應該對其進行過度分析。即使您刪除了所有樣式表,頁面上仍有樣式。

用樣式表頂部的css重新嘗試一次。另外,請確保您聲明瞭有效的文檔類型。使用嚴格的文檔類型,並確保您的代碼驗證,如果仍然沒有幫助。

我通常使用meyer web重設,並進行一些適合我工作流程的小修改。

如果其他人看到100px,那麼這可能是一個客戶端問題,所以希望能爲您解決這個問題。

0

設置<div style="display:inline" />應該解決您的問題。

0

這裏一定有更多的事情比你展示的要多。你如何測量這些半像素?你使用什麼工具?我可以看到行高正在發揮作用,但您不會在樣本中顯示。

+0

就像我說的,我用FireBug來測量div的計算高度。如果我用均勻間隔的線添加背景圖像,我還可以看到這發生在我將第一個div的多個實例堆疊在另一個之上時發生。我沒有設置行高,除了示例中沒有設置其他樣式。 –

1

當應用於僅包含圖像的div時,請注意高級別的線高度定義。 (例如html {line-height:1.5em;}

您可能仍然希望在整個網站中重置文本時使用此行高度設置,但請嘗試將line-height:0僅應用於除div之外的其他內容。

http://jsfiddle.net/kq3Yy/