@@ -1896,30 +1896,32 @@ and to the CSS [=math functions=].
1896
1896
3. Return |result|.
1897
1897
</div>
1898
1898
1899
- A [=type=] is said to <dfn export for=CSSNumericValue>match</dfn> a CSS production in some circumstances:
1900
-
1901
- * A [=type=] matches <<length>>
1902
- if its only non-zero [=map/entry=] is «[ "length" → 1 ] »
1903
- and its [=percent hint=] is null.
1904
- Similarly for <<angle>> , <<time>> , <<frequency>> , <<resolution>> , and <<flex>> .
1905
- * A [=type=] matches <<percentage>>
1906
- if its only non-zero [=map/entry=] is «[ "percent" → 1 ] ».
1907
- * A [=type=] matches <<length-percentage>>
1908
- if its only non-zero [=map/entry=] is either «[ "length" → 1 ] » or «[ "percent" → 1 ] »
1909
- Same for <<angle-percentage>> , <<time-percentage>> , etc.
1910
- * A [=type=] matches <<number>>
1911
- if it has no non-zero [=map/entries=]
1912
- and its [=percent hint=] is null.
1913
- * A [=type=] matches <<number-percentage>>
1914
- if it has no non-zero [=map/entries=] ,
1915
- or its only non-zero [=map/entry=] is «[ "percent" → 1 ] ».
1916
-
1917
- Many specifications use ''[ <<length>> | <<percentage>> ]''
1918
- instead of ''<<length-percentage>>'' in their grammar,
1919
- and specify in prose that the <<length>> and <<percentage>> can be combined.
1920
- For the purposes of [=CSSNumericValue/matching=] ,
1921
- these cases should be treated as <<length-percentage>> .
1922
- Similarly for <<angle-percentage>> , etc.
1899
+ <div algorithm>
1900
+ A [=type=] is said to <dfn export for=CSSNumericValue>match</dfn> a CSS production in some circumstances:
1901
+
1902
+ * A [=type=] matches <<length>>
1903
+ if its only non-zero [=map/entry=] is «[ "length" → 1 ] ».
1904
+ Similarly for <<angle>> , <<time>> , <<frequency>> , <<resolution>> , and <<flex>> .
1905
+
1906
+ If the context in which the value is used
1907
+ does not allow <<percentage>> values,
1908
+ then the [=type=] must additionally have
1909
+ a null [=percent hint=]
1910
+ to be considered [=CSSNumericValue/matching=] .
1911
+ * A [=type=] matches <<percentage>>
1912
+ if its only non-zero [=map/entry=] is «[ "percent" → 1 ] ».
1913
+ * A [=type=] matches <<length-percentage>>
1914
+ if its only non-zero [=map/entry=] is either «[ "length" → 1 ] » or «[ "percent" → 1 ] ».
1915
+ Same for <<angle-percentage>> , <<time-percentage>> , etc.
1916
+ * A [=type=] matches <<number>>
1917
+ if it has no non-zero [=map/entries=] .
1918
+
1919
+ If the context in which the value is used
1920
+ does not allow <<percentage>> values,
1921
+ then the [=type=] must additionally have
1922
+ a null [=percent hint=]
1923
+ to be considered [=CSSNumericValue/matching=] .
1924
+ </div>
1923
1925
1924
1926
Note: [=Types=] form a semi-group under both addition
1925
1927
and a monoid under multiplication
0 commit comments