Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome为$(';.abc';).css(";top";)带来整数值;_Javascript_Jquery - Fatal编程技术网

Javascript Chrome为$(';.abc';).css(";top";)带来整数值;

Javascript Chrome为$(';.abc';).css(";top";)带来整数值;,javascript,jquery,Javascript,Jquery,以下javascript代码为同一页面元素的Chrome和Firefox返回两个不同的值 $('.abc').css("top"); Chrome返回:114px 而Firefox返回114.1230px 我在同一页上尝试过几次,Chrome始终删除小数点和以下数字 关于如何在Chrome中获得完整值的任何建议?最好的答案可能是简单地floor()。(Chrome缩小了亚像素数量)Firefox在这种情况下有点特别。。。它支持十进制像素。这意味着,如果您在f.e.图像上设置高度或宽度,它将调整

以下javascript代码为同一页面元素的Chrome和Firefox返回两个不同的值

$('.abc').css("top");
Chrome返回:114px
而Firefox返回114.1230px

我在同一页上尝试过几次,Chrome始终删除小数点和以下数字


关于如何在Chrome中获得完整值的任何建议?

最好的答案可能是简单地
floor()。(Chrome缩小了亚像素数量)

Firefox在这种情况下有点特别。。。它支持十进制像素。这意味着,如果您在f.e.图像上设置高度或宽度,它将调整图片大小,并且此计算将包含(很可能)十进制像素。这和div是一样的,它被计算出来,并且在firefox中使用小数

据我所知,firefox是唯一支持小数的主流浏览器


如果您需要完整像素,如果您有字符串,请尝试使用正则表达式或其他方法删除小数;如果您有数字,请尝试使用
floor()

只要您将宽度保持为小数,Chrome就会将其截断。不过,如果你把它定为一个百分比,(可能不是你的选择),Chrome将保持现状

这可能不是您想要的,但您可以将像素值存储在jQuery对象中:

$('#foo').data('actualTop', 114.123);
但是为什么这些小数位会困扰你呢?

试试:
$('.abc').offset().top
$('.abc').position().top


(尽管我无法理解0.123像素的外观)

我想知道Chrome是否返回了真实值(你怎么能得到0.123像素?),而Firefox返回的是你在css中设置的值?我认为:。这是:十进制像素在缩放页面时可能很有用。例如,iPhone4将所有CSS大小加倍,以使旧页面在其高分辨率屏幕上看起来更好(这将很好地向前发展…),因此1个CSS像素实际上是2x2屏幕像素。5个css像素理论上是一个实际的屏幕像素。(虽然我猜mobile safari和chrome的取整功能是一样的)你是对的,但是纠正PPI调整的属性是设备的工作,而不是程序员的工作。OP可能需要小数点。好吧,chrome将它们取整。我们还没有亚像素级的屏幕,所以小数是无用的。不,我不同意。尝试在Firefox上使用
字体大小
。排版大小完全不同。阅读有关字体渲染的更多信息。我的观点是,Chrome根本不支持存储亚像素值,但亚像素值确实起到了作用。顺便说一句,我看不出这篇文章有什么关系……谢谢。floor()帮助我平衡了两种浏览器。很好地解释了firefox的不同行为。