CSS" border-width" (px)属性错误?

时间:2015-02-15 08:56:33

标签: javascript jquery html css pixels

:这是Firefox 35中的错误吗?

$(angSelect[0], angSelect[2]).css("border-right-width", (function() {
    var angW = $(angSelect[1]).css("border-right-width");
    var boxW = selected[0].getBoundingClientRect().width;
    var res = boxW - parseFloat(angW);
    console.log("angW: " + angW + " boxW: " + boxW + " res: " + res);
    return (res / 2) + "px";
})());
console.log($(angSelect[0]).css("border-right-width"));

控制台在整个代码中记录两次:

angW:199.833px boxW:300 res:100.167

49.5px

这显然是不正确的。第二个日志应该是50.0835。代码在窗口调整大小事件中按顺序执行。

IE11中的结果

angW:200px boxW:299.99993896484375 res:99.99993896484375

49.99

[新] JSFiddle

请记住在新标签页中打开结果,以便在没有JSFiddle干扰的情况下放大和缩小。另外,以浮点格式打开开发人员控制台以获得结果。

http://jsfiddle.net/nbsshu77/15/

1 个答案:

答案 0 :(得分:1)

我不确定你的期望是什么。宽度值不会因为缩放而改变,这样做会很奇怪。当您在Firefox中进行缩放时,相同的值(例如100px)仅显示更大或更小,取决于比例因子,但如果您查询元素,您将获得相同的大小:它就像高密度显示。 实际上,您实际上可以使用devicePixelRatio来获取比例因子。