我需要在JavaScript中设置div
margin-left
,以便在不同单位中两个长度之间的最小值(如min(10pt,15vw)
。
我们可以使用Math.min()
来比较数字。是否有类似的长度函数?
或者,有没有办法将长度从一个单位转换为另一个单位?
答案 0 :(得分:1)
可以通过创建临时隐藏div
并使用offsetWidth
属性计算元素的布局宽度(以像素为单位)(随后立即删除)来计算具有单独单位的两个长度中的最小长度div
):
minimum('100px', '100%')

如上所示,您可以使用pass
返回最小值。
答案 1 :(得分:0)
由于1vw反映了视口宽度的1%,您可以使用window.innerWidth将其转换为像素:
var 1vw = window.innerWidth * 0.01;
并将其与15像素进行比较:
Math.min(1vw * 15, 10);
答案 2 :(得分:-1)
您可以使用简单的比较运算符进行长度比较,例如=,< =,> =等等。但只有当您拥有相同的单位时。你的问题的另一部分,你可以使用一个小的js库,称为math.js. math.js库附带了对单位的支持。该库尚不支持派生单位,但这是在规划中。