为什么jQuery只返回整数高度,如果设置一个双重值清楚地呈现不同?

时间:2013-08-12 23:59:40

标签: javascript jquery height pixel

我的图像高度为924像素。已创建图像以在此高度处看起来合适。拉伸它是不可取的。

在此图像的上方,我需要覆盖可变数量的相同高度的div元素。在这个特定的例子中,我需要覆盖88.因此,数学很清楚:

  

924/88 = 10.5

每个div元素的高度必须为10.5像素才能正确覆盖我的图像。

从视觉上看,一切看起来都很棒!我有88个元素,它们的高度都是10.5像素。如果我将它们的高度设置为11px或10px,我会看到视觉差异。

然而,使用jQuery:

$('div').height();  // 10
$('div').css('height'); //10px

??咦?它们的高度明显为10.5像素,而不是10.如果我深入研究元素的样式属性 - 我看到10.5像素。

发生了什么事?我可以让jQuery与高度/宽度的双倍值一起玩吗?为什么这么反对?

1 个答案:

答案 0 :(得分:2)

使用jquery.height()实际上会将其转换为屏幕上占用的实际像素数。

您可能会发现,如果您遍历页面上的每个div,高度为10和11的混合,因为您无法仅在半个像素上渲染某些内容,实际渲染需要半个像素的内容决定是否需要一个像素。浏览器将在哪些div之间交替,不要尝试获得最佳结果。