如何在javascript中进行CSS单元计算并保留CSS单元
How do you do CSS unit math in javascript and retain the CSS unit?
我有一个变量,半径设置为"20%"。在我的代码中,我想将高度设置为半径的两倍,如-
height = radius * 2;
我希望它能工作,无论半径是20%、20px、20em还是20vw,结果分别是40%、40px、40em还是40vw。
(我正在使用Reactjs并可以访问Radium)
您可以用parseFloat
解析出数字,字符串的其余部分是单位:
var value = "123px";
var n = parseFloat(value);
var u = value.trim().substring(n.toString().length);
console.log("number:", n, "units:", u, "value:", n + u);
// Output: number: 123 units: px value: 123px
或者您可以使用regex(感谢评论中的brendagibson):
var value = "123px";
var matched = value.match(/('d+)([^'d]*)$/);
var num = matched[1], unit = matched[2];
使用析构函数数组赋值:
let [all, num, unit] = value.match(/('d+)([^'d]*)$/);
或者,您可以使用众多JS库中的一个来为自己做这件事。
相关文章:
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
- 如何将css类设置为表头单元格
- 如何在javascript中进行CSS单元计算并保留CSS单元
- CSS选择器在Angular单元测试w/karma&柴
- 使用内部脚本更改表单元格 css,而不依赖于 id、类或包含
- 使 CSS 输入的行为类似于表格单元格
- 将悬停CSS添加到用javascript处理的表单元格中
- 如何使用 CSS 和 jQuery 根据表单元格值有条件地在悬停时突出显示表行
- 根据单元格内容更改表格行的文本颜色,仅使用 css
- 更改表格中单个单元格(TD)的CSS
- Jasmine抱怨在单元测试中导入的css
- 如何在三次单击html5 / javascript / css时将表格单元格颜色更改为默认值
- 我们应该在AngularJS项目的Karma单元级测试中使用CSS吗
- 在CSS或HTML中,重叠的图像跨越表格单元格边界
- CSS:如果表的每个单元格的表头被悬停,我该如何触发它们的悬停
- 单元格中忽略了dgrid空白css属性
- 在单元格上引导完整的日历CSS
- 在一行中使用多个CSS单元