今天我遇到了一个非常奇怪的问题,但我无法找出原因。
以下是HTML代码:
我希望外层的"a" div与其包含的"b" div 一样高,即30px。但是在渲染时,"a" 的高度为35px。在 "b" 下面有5个像素的空白。为什么会这样呢?
请参见http://jsfiddle.net/Pb2q9/。 我已经在Chrome和Firefox上尝试过,它们都给出了相同的输出。
奇怪的是,如果将“b”更改为display:block,则底部的额外空间将消失。 有人能解释为什么这两种情况会呈现不同的效果吗?inline-block有什么特殊之处,可以解释为什么应该存在5px的空间?
编辑:
更奇怪的是,如果您将HTML更改为
注意 b div 中只有一个 "x" 字符,底部额外的 5px 将消失!
以下是HTML代码:
<div class="a"><div class="b"></div></div>
还有 CSS:
.a {
background: blue;
}
.b {
display:inline-block;
height: 30px;
width: 30px;
background: red;
}
我希望外层的"a" div与其包含的"b" div 一样高,即30px。但是在渲染时,"a" 的高度为35px。在 "b" 下面有5个像素的空白。为什么会这样呢?
请参见http://jsfiddle.net/Pb2q9/。 我已经在Chrome和Firefox上尝试过,它们都给出了相同的输出。
奇怪的是,如果将“b”更改为display:block,则底部的额外空间将消失。 有人能解释为什么这两种情况会呈现不同的效果吗?inline-block有什么特殊之处,可以解释为什么应该存在5px的空间?
编辑:
更奇怪的是,如果您将HTML更改为
<div class="a"><div class="b">x</div></div>
注意 b div 中只有一个 "x" 字符,底部额外的 5px 将消失!