gpt4 book ai didi

javascript - 如何防止 jQuery 意外的单位转换

转载 作者:行者123 更新时间:2023-12-01 05:49:33 24 4
gpt4 key购买 nike

假设我有代码:

var $element = $('<div/>');
$element.css("margin-left", "2cm");
console.log($element.css("margin-left"));

Chrome 没有给我任何东西,而 Firefox 给了我“75.5833px”。关于如何解决/解决这个问题有什么想法吗?我知道不在 DOM 中的 div 在检索浏览器解释为可计算单位的内容时可能会遇到困难,例如百分比和所有...基本上归结为我想要应用样式,包括速记样式,例如字体,背景和边距,并检索可以尽可能有效地分解它们的样式。

最佳答案

根据此:

How to access screen display’s DPI settings via javascript?

How to detect the screen DPI using JavaScript

Pixel to Centimeter?

我们可以假设:

1px = 0.02645833 cm;

1cm = 37.795276px;

因此您可以使用一个小函数将厘米转换为像素,该函数的计算如下:

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/

关于javascript - 如何防止 jQuery 意外的单位转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com