【问题标题】:Why doesn't css-calc() work when using 0 inside the equation?为什么在等式中使用 0 时 css-calc() 不起作用?
【发布时间】:2019-08-19 17:16:53
【问题描述】:

我正在使用calc() 在类中设置top: 属性。我需要一些帮助来理解calc() 的使用方式——我认为两个方程应该有相同的结果。 (上面的等式不实用,我只是想调试一个更大的问题,发现这两个没有相同的结果)

calc(-10px + ((1 - 1) * 0));

calc(-10px);

【问题讨论】:

    标签: css equation css-calc


    【解决方案1】:

    第一个等式无效,因为它会导致calc(-10px + 0)

    注意:因为<number-token>s 总是被解释为<number>s 或<integer>s,所以calc() 不支持“无单位0”<length>s。即 width:calc(0 + 5px); 是无效的,即使两者都是 width: 0;和宽度:5px;是有效的。 ref

    如果结果不为零,您将陷入:

    在 + 或 - 处,检查两边的类型是否相同,或者一侧是 <number>,另一侧是 <integer>。如果双方是同一类型,则解析为该类型。如果一侧是<number>,另一侧是<integer>,则解析为<number>

    最后一个更合乎逻辑,因为10px + 5 没有任何意义,我们可能认为10px + 0 只是10px,但对于浏览器来说不是。

    【讨论】:

    • 有道理,谢谢!我的后续问题:我需要如何重新格式化 top: calc(-10px - (100% - 627px)); 才能有效/可用?
    • @nbixler 这对我来说似乎是有效的,因为您正在使用可以一起工作的 % 和 px 的组合
    • 更新:当我从 % 切换到 vw 时开始工作(我知道它们不可互换,所以我不得不重新配置我的方程式)。
    • @nbixler 我忘记了一些事情...... % with px 应该可以工作但是还有另一个问题是如果父元素没有设置高度,使用 % 的最高值将不起作用。所以 calc 是有效的,但问题出在其他地方。您可以在没有 calc 的情况下测试 %,您将面临同样的事情
    猜你喜欢
    • 2020-07-03
    • 2015-08-05
    • 2013-02-13
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多