2010-10-29 63 views
15

內聯塊元件呈現不同

<div style="background-color:red"> 
 
    <div style="display:inline-block;background-color:green;height:20px;width:20px;"></div> 
 
</div> 
 
<div style="background-color:yellow"> 
 
    <div style="display:inline-block;background-color:green;height:20px;width:20px;">hi</div> 
 
</div>

當在FF或鉻紅div的高度是26px渲染,而黃色div的高度是20像素。我怎樣才能使紅色div呈現與黃色div相同,但沒有包含任何文字?

回答

34

只是一個想法:

只要有在div沒有文本,它像對待內嵌圖像(或別的東西),所以它的垂直對齊設置爲「基準」(或文本底部或其他)而不是'底部'。

解決方案:

糾正,在你內心的div設置vertical-align: bottom;。但絕對沒有必要把一個空間或不可見的元素進去,像其他人所說(但是這將是一個(醜陋的)解決方案,太)

+0

啊哈!很好地解決了這個問題。謝謝! – 2010-10-29 16:06:17

+0

我的榮幸!如果這是你正在尋找的答案,最好通過點擊左邊的刻度標記來接受它(你應該總是接受一個答案來回答你的問題) – oezi 2010-10-29 16:08:49

+3

Yeeha !!我討厭CSS這樣的問題,但我喜歡你這樣的人 – NaturalBornCamper 2013-05-31 02:06:37

1

如何在「空」節點將零寬度空間(&#8203;)?

0

這是跛的,但你可以添加一個&nbsp;到空div。

inline-block是一個有趣的顯示類型,沒有內容,因爲其他屬性如font-sizeline-height實際上可以生長高於20px的元素。

0

如果你想有一個特定的高度,用

min-height: 1em; 

在某些情況下使用某種空間是不同的高度。