@@ -1470,12 +1470,12 @@ Mathematical Expressions: ''calc()''</h3>
14701470 <<frequency>> ,
14711471 <<angle>> ,
14721472 <<time>> ,
1473+ <<percentage>> ,
14731474 <<number>> , or
14741475 <<integer>>
14751476 values are allowed.
1476- Components of a ''calc()'' expression can be literal values,
1477- ''attr()'' or ''calc()'' expressions,
1478- or <<percentage>> values that resolve to one of the preceding types.
1477+ Components of a ''calc()'' expression can be literal values or
1478+ ''attr()'' or ''calc()'' expressions.
14791479
14801480 <div class="example">
14811481 <pre>
@@ -1566,6 +1566,7 @@ Type Checking</h4>
15661566 <<frequency>> ,
15671567 <<angle>> ,
15681568 <<time>> ,
1569+ <<percentage>> ,
15691570 <<number>> , or
15701571 <<integer>> .
15711572 The <a>resolved type</a> must be valid for where the expression is placed;
@@ -1577,8 +1578,13 @@ Type Checking</h4>
15771578 An ''attr()'' expression's type is given by its <<type-or-unit>> argument.
15781579
15791580 If percentages are accepted in the context in which the expression is placed,
1580- a <<percentage-token>> has the type of the value that percentages are relative to;
1581- otherwise, a math expression containing percentages is invalid.
1581+ a <<percentage-token>> has the type of the value that percentages are relative to.
1582+ For example, in the 'width' property, percentages have the <<length>> type,
1583+ and in 'opacity' they have the <<number>> type.
1584+ A percentage only has the <<percentage>> type if in that context
1585+ <<percentage>> values are not used-value compatible with any other type.
1586+ If percentages are not normally allowed in place of the ''calc()'' ,
1587+ then a ''calc()'' expression containing percentages is invalid in that context.
15821588
15831589 Operators form sub-expressions, which gain types based on their arguments.
15841590 To make expressions simpler,
0 commit comments