2010-10-29 65 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; 

在某些情况下使用某种空间是不同的高度。