javascript - `getBoundingClientRect` 可以返回 `rem` 中的值吗?

标签 javascript css dom

我使用 rem 作为我的 CSS 大小,并且还在 javascript 中使用 getBoundingClientRectgetBoundingClientRect 默认以 px 返回它的值。是否有可能让它返回 rem 中的值?这将使我的代码更简单一些。

最佳答案

您必须通过将像素除以文档的计算字体大小来转换它:

function convertPixelsToRem(px) {    
    return px / parseFloat(getComputedStyle(document.documentElement).fontSize.replace('px', ''));
}

console.log(convertPixelsToRem(div.getBoundingClientRect().width))
#div{
  width:100px;
  height:100px;
  background-color:grey;
  margin-bottom:10px;
}

#div2{
  width:6.25rem;
  height:100px;
  background-color:grey;
}
<div id="div"></div>
<div id="div2"></div>

关于javascript - `getBoundingClientRect` 可以返回 `rem` 中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70193305/

相关文章:

html - SVG 未在移动浏览器中按预期呈现

java - getTextContent() 和 item(0) 在 Java DOM API 中返回什么?

javascript - 如何使用 JavaScript 添加/删除表格行?

Javascript HTML 字符串 - 注入(inject)文档

javascript - Redux-Saga 无法正确读取来自 fetch api 的响应

javascript - 如何使用 MVC Ajax.BeginForm 在 AjaxOptions OnComplete 函数中获取源元素

PHP-我如何获取所有 header 的列表

javascript - 动画将最后一个 child 附加到第一个

javascript - 使用 CSS 样式将当前页面保存为 PDF

css - IE中跟随元素使用的空元素背景