高度差div与`position:relative;`和较小的字体

时间:2014-03-14 11:08:38

标签: html css google-chrome firefox

我问了关于子标签的这个问题:

Using <sub> tag and preserve line-height

所以现在我使用position: relative;和更小的字体来“模拟”下标行为。但我发现这个解决方案不是像素完美的。具有此模拟子标记的<div>可以具有更大的高度,然后<div>没有此模拟子标记,即使div的每个行行中的文本完全相同。我在Chrome和Firefox中观察到了这种行为,这是现场代码中显示的问题:

http://jsfiddle.net/FRkQ6/

在Mac上的Chrome浏览器中,输出为:

Height of first div is: 163
Height of first div is: 162

此实时代码适用于Mac上的chrome,其中两个div具有相同的文本相同的行。在Firefox上,这个演示不起作用,因为行中的文本被不同地呈现。但问题与Chrome类似。

有人能解释一下这种行为吗?它是浏览器或预期行为中的一些错误吗?我可以用CSS以某种方式修复它(如果我减去顶部和底部边框的高度,这是2,高度应该可以被行高整除,在我的演示中是20,所以我永远不应该得到163的高度?)

1 个答案:

答案 0 :(得分:1)

即使跨度是位置:相对于浏览器仍然(错误地)考虑其行高。添加行高为零会修复它...

line-height: 0;

<强> jsFiddle demo