Кажется, нет.
Если он совместим, тип разрешается, как описано ниже (ниже для простоты игнорируются правила приоритета операторов):
На +
или -
, убедитесь, что обе стороны имеют одинаковый тип, или что одна сторона - а, а другая - <integer>
. Если обе стороны одного типа, разрешите этот тип. Если одна сторона - <number>
, а другая - <integer>
, разрешите <number>
.
На *
убедитесь, что по крайней мере одна сторона <number>
. Если обе стороны <integer>
, разрешите <integer>
. В противном случае разрешите тип другой стороны.
На /
, убедитесь, что правая сторона <number>
. Если левая сторона равна <integer>
, разрешите значение <number>
. В противном случае разрешите тип левой стороны.
Примечание. Алгебраические упрощения не влияют на действительность выражения calc()
или его разрешенный тип. Например, calc(5px - 5px + 10s)
и calc(0 * 5px + 10s)
недопустимы из-за попытки добавить длину и время.