【问题标题】:Why is CSS clamp() not working with just zero (without units)? [duplicate]为什么 CSS clamp() 不能只使用零(没有单位)? [复制]
【发布时间】:2021-03-17 04:28:41
【问题描述】:

我用 bug 之类的例子创建了 pen: https://codepen.io/dimakrutoo/pen/PoGZymb

如果我们将变量的值--layoutWMin 从“0px”更改为“0”,那么计算就会中断

谁能解释一下为什么clamp() 函数在没有单位的零值下不起作用?

UPD

这里有一些更说明性的例子: https://codepen.io/dimakrutoo/pen/RwGarWY

【问题讨论】:

    标签: html css


    【解决方案1】:

    这不是一个完整的答案,但我在 cmets 中用完了字符。

    我无法解释,只是要注意,clamp 解析为max(MIN, min(VAL, MAX)),参见https://developer.mozilla.org/en-US/docs/Web/CSS/clamp(),当第一个参数为 0 且第二个参数有单位时,max 和 min 表现出相同的行为。

    关于 SO 有几个问题,有大量接受和赞成的答案现在看来是不正确的,因为他们坚定地声明 0 和比如说 0px 是相同的(据我所见,规范也是如此)。

    这可能是一个错误,也可能是一个功能,但了解这一点很重要。感谢您强调它。

    【讨论】:

    • 这里有一个更准确的答案和更好的解释:stackoverflow.com/a/62523544/8620333
    • 太好了,谢谢。我的不是我所说的答案,而是一个过长的评论。
    • @TemaniAfif 非常感谢,但是我如何在 max/min/clamp 中使用 css 变量(具有“0”值)?这是非常隐含的行为......
    • @dima.krutoo 当你需要使用它时将它与一个单位相乘var(--p)*1px [其中--p:0]。相关:stackoverflow.com/q/57666183/8620333
    • @TemaniAfif 从外面看起来很奇怪,尤其是当变量是由其他人提供时——它的值不确定,但再次感谢您
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多