The first equation is invalid because it will lead to calc(-10px + 0)
Note: Because <number-token>
s are always interpreted as <number>
s or <integer>
s, "unitless 0" <length>
s aren’t supported in calc()
. That is, width: calc(0 + 5px);
is invalid, even though both width: 0; and width: 5px; are valid. ref
And if the result was non-zero you will fall into this:
At + or -, check that both sides have the same type, or that one side is a <number>
and the other is an <integer>
. If both sides are the same type, resolve to that type. If one side is a <number>
and the other is an <integer>
, resolve to <number>
.
The last one is more logical since 10px + 5
has no meaning whearas we may think that 10px + 0
is simply 10px
but for the browser it's not.
Related question: Why doesn't min() (or max()) work with unitless 0?