-
Notifications
You must be signed in to change notification settings - Fork 757
Description
Section 8.1.2 **calc() Type Checking does not explicitly indicate how a unitless 0 inside a calc() expression is treated. For example:
left: calc(0 - 5px);
It's not clear whether this expression is invalid. Inside calc((), the types of arguments to the - operator must be compatible, and the rhs is of type dimension<length>. But what is the type of the lhs: number or dimension<length>?
Since section 5 says:
for zero lengths the unit identifier is optional (i.e. can be syntactically represented as the
<number>'0'
I would argue that interpreting 0 as being of type dimension<length> would be valid, and would be more in line with developer expectations. However, this was discussed in 2010 with @tabatkins agreeing the 0 should cause a parse error. That's fine, but it would be helpful if the fact that 0 is never treated as a dimension inside calc() were explicitly noted in the spec (which was also agreed upon in that discussion).