如何解决不兼容的单位问题?
@mixin square-size($size, $min: $size, $max: $size) {
$clamp-size: min(max($size, $min), $max);
width: $clamp-size;
height: $clamp-size;
}
输入为:
@include square-size(10vw, 40px, 70px);
问题:
Incompatible units: 'vw' and 'px'.
node_modules\@ionic\app-scripts\dist\util\helpers.js:253.replace(/&/g, '&')
但如果我使用calc(1vw-1px)
,它就可以正常工作(没有单位问题)。
例如:max(calc(1vw-1px))
不起作用,因为max
函数需要一个数值参数。
在我的情况下,我想要一个mixin来将元素的大小平方。包括clamp。
min-width
,max-width
等不起作用,因为它会变成矩形或椭圆形,而不保持纵横比。
我想要一个具有动态size
但带有min
和max
大小的元素。
我知道动态单位vw
(视口单位)必须在sass编译后出现。因此,无法将其转换为固定单位。
但是难道就没有办法吗?
vw
(和其他相对单位)无法转换为可以进行数学计算的值。calc()
是由浏览器计算的,而不是Sass。因此,您需要获取绝对值以便在Sass中进行计算,或将您的方程式转换为calc()
表达式以在浏览器中计算。 - Flying