2012-02-17 113 views
5

我有一個問題,我在各種瀏覽器中複製。來自這些圖像的額外空間在哪裏?

我有divs與每個圖像包裝http://jsfiddle.net/QnVYL/。包裝有1px邊框和5px填充。裏面的圖像大小爲100%寬度。

由於某些原因,圖像底部和其包裝底部之間的距離超過5px。看看填充圖像在圖像的各個方面看起來是否相等?似乎從某處添加了3個像素。 Firebug不讓我知道從哪裏來。

我該如何擺脫空間?我無法使用絕對定位來僞造填充,因爲我不確定我會始終知道圖像的確切高度。

非常感謝幫助!

+1

你有沒有嘗試重置瀏覽器樣式?也許關於顯示屬性的東西。 – rekire 2012-02-17 11:09:26

回答

6

這是一個已知的問題。請嘗試:

img { 
    display: block; 
}  
+0

AHA!當圖像是內聯時,div會包裝文本行的基線!埃裏克邁耶在這裏寫道:http://devedge-temp.mozilla.org/viewsource/2002/img-table/ – 2012-02-17 11:19:39

1

就像我猜對了沒有額外的間距顯示attribut:

#container { 
    display:block; 
    width: 50%; 
    margin: auto; 
    margin-top: 100px; 
} 
5

這是行高。默認情況下,圖像呈現爲內嵌塊元素。行高可以確保下面的文本不會粘到圖像喜歡這裏:

<img...><br>foo 

line-height separates text from imagtext sticking to image

這兩個補丁是有用的,視情況而定:

.imgContainer { line-height: 0; } 

img { display: block; } 
+0

感謝您的替代解決方案。但是,線路高度何時會更適合我?做一些瀏覽器奇怪的塊圖像或什麼? – 2012-02-20 23:57:39

+0

在你的特定情況下,我想它確實沒有太大區別。但是,假設您想要添加更多內容,如某些文字或其他圖像,則行高可能會變得有用。看到這個例子:http://jsfiddle.net/mDP85/ – user123444555621 2012-02-21 06:30:40