javascript - 从单位表示(rem/vh/px/...)计算(javascript)像素的最佳方法
问题描述
寻找一种简单而强大的方法来计算任何字符串的像素长度,例如:“55rem”/“33vh”/“300px”到当前浏览器的像素。
据我了解,有 window.getComputedStyle(),但我不希望将样式附加到任何实际元素。所以,考虑到我不关心计算的任何元素的百分比,只是简单的单位转换(相对于当前用户浏览器/缩放) - 应该很容易被一些伪元素合理计算?
有一些解决方案涉及单位的实际计算,但我相信为此必须有一个更简单的 3 线性解决方案(可能使用 getComputedStyle 或类似函数)......
更新:也许它不应该在 JS 中完成。或者简单地说,不是最佳实践......这也是一个答案。只是检查一下这个去/不去......
解决方案
getComputedStyle
是一项非常昂贵的操作,因为每次调用它都会触发 CSS 重排。我建议手动计算转换,使用window.innerHeight
或document.body.style.fontSize
(如果它是内联设置的)。
如果你使用 Webpack,你甚至可以加载SCSS 变量来获取body
字体大小。
推荐阅读
- sql-server - 扩展的执行计划通过“插入”引发错误 - 而“选择进入”很好。这是为什么?
- apache-spark - 火花拼花太多小文件
- jquery - 如何根据数据库中的值检查复选框。如果状态为 1,则要检查的复选框
- android - 如何在android中进行无限循环?
- macos - UI Save/Restoration mechanism in Cocoa via Swift
- reporting-services - 将总计添加到重复值
- arrays - Excel 数组:减少计算步骤的数量
- ios - Stackview inside 其他stackview宽度问题
- java - Firebase中的海量数据库必须清除,编辑数据的编码错误
- reactjs - ReactJS 访问渲染组件的 props