我有一个这样的时刻,我的大脑被绑在一个结。
我希望div
在viewport为900 px或更宽时具有10%
的margin
,而在viewport为450 px或更窄时具有1%
。并且为了在这两点之间线性插值,例如,675 px viewport将给予5.5%
边距。
margin: clamp(1%, ???, 10%);
字符串
这两点给予了一个直线方程(我想!)margin = viewportWidth/50 - 8
.
margin: clamp(1%, 100vw/50 - 8vw, 10%);
型
不,这没有意义,它将永远是-6vw
。
我觉得也许应该
margin: clamp(1%, 100vw / 50px - 8vw, 10%);
型
但是Devtools(在Edge中)抱怨这是一个无效的属性值。我可以猜测浏览器将vw转换为像素,所以将(比如)800px
除以50px
并得到16
。不是16%
或16vw
,而是16
。我如何更改它?
拜托,谁来帮我解脱吧。
1条答案
按热度按时间4nkexdtk1#
好吧,搞定了。
字符串
测试:
型
好吧,所以675并没有达到5.5%的利润率,但足够好了。虽然我有点理解为什么它没有,我很难用语言表达出来。有人编辑这个答案,请解释一下。
我是怎么到那里的?
两个点(900,10%)和(450,1%)。关键是将它们转换为像素。(900,90)和(450,4.5)。我意识到我要寻找的中间项将是
{b}% - {b}px
的形式,所以从我的点中创建了两个方程:型
求解x和y:
型