Re: [css3-values] calc() constraints too strong for * and /

On Mon, May 10, 2010 at 6:40 PM, L. David Baron <dbaron@dbaron.org> wrote:
> In the new text in
> http://dev.w3.org/csswg/css3-values/#the-calc-min-and-max-functions
> describing calc(), I think these constraints:
>  > 2. At "*":
>  > check: at least one side is "number"
>  > return: the type of the other side
>  > 3. At "/":
>  > check: either right side is "number," or both have the same type
>  > return: if the former, type of left side; otherwise "number"
> are too strong.  And, additionally, since the new definition of the
> binary operators is nonrecursive, they're also ambiguous.
>
> In particular, I think it's bad that they make:
>  2em * (2em / 3em)
> legal while the mathematically equivalent:
>  (2em * 2em) / 3em
> is illegal and it's unclear whether:
>  2em * 2em / 3em
> is legal or not.  I think these should be handled consistently.

We really just need to stop faking it and track units properly across
the expression.

~TJ

Received on Tuesday, 11 May 2010 02:46:02 UTC