根据这个:
如何通过 javascript 访问屏幕显示的 DPI 设置?
如何使用 JavaScript 检测屏幕 DPI
像素到厘米?
我们可以假设:
1px = 0.02645833 cm;
或者
1cm = 37.795276px;
因此您可以使用一个计算如下的小函数将 cm 转换为像素:
function cmToPx(cm){
return cm * 37.795276;
}
并像这样使用它:
element.css("margin-left", cmToPx(2));
此外,如果您想检索以厘米为单位的元素的值,您还可以使用另一个执行相反操作的函数:
function pxToCm(px){
return parseInt(px) * 0.02645833;
}
并像这样检索值:
pxToCm(element.css("margin-left"))
不幸的是,它检索到一个带有误差范围的数字(实际上,当我最初使用 2cm 时它得到 1.98437475)。为了解决这个问题,也许你可以四舍五入。
我不知道为什么您的解决方案在 Chrome 上不起作用,但至少这是解决您的问题的一种可能的解决方法。希望对您有所帮助,祝您好运!
pd:我离开了 jsfiddle:http: //jsfiddle.net/79fM4/3/