这看起来很奇怪。我将以下内容放在div上:
width: calc(702px / 672);
我得到:
width: 1.03125px
如果你把这个702/672放进计算器里,你会得到
1.0446
这很近,但还不够近。
为什么我需要这个?我正在构建一个流畅的布局,当页面调整大小时,会调整图标/图像/边距等内容的大小,使用LESS给我一个合适的
calc
基于我的基于像素的figma src。完整的方程式为:
/** linear interpolate value from small to big as screen goes from small-size to big-size */
.scalable-unit(@property, @small, @big, @unit) {
@{property}: clamp(
unit(@small, @unit),
calc(unit(@small, @unit) + (@big - @small) * ((100vw - @tabletBreakpoint) / (@desktopWidth - @tableWidth))),
unit(@big, @unit),
);
}
有趣的是,它适用于基于像素的值,而不是基于%年龄的值。如果我直接输入图像的大小
.scalable(width, 105, 174, px)
然后我在桌面断点上得到了合适的大小。但是如果我使用%大小,那么我得到了错误的输出。
.scalable(width, 75, 100, %)