calc()
做基礎的數學計算,遵循先乘除後加減和括弧優先計算,不支援指數計算。<length>
(長度)、<frequence>
(頻率)、<angle>
(角度)、<time>
(時間)、<percentage>
、<number>
、<integer>
等數值型別的地方,calc()
就能支援,單位也沒有限制。calc()
會進行基礎的驗證,因此有所限制:+
與-
符號兩側中至少一側需要有空白,這是為了避免與負值混淆,但*
和/
沒有限制。+
與-
的兩側需為相同型別,唯<number>
和<integer>
可以混用,結果會是<number>
,因此clac(5 + 2.7)
是正確的。+
與-
的兩側需為相同度量,因此clac(5px + 2.7)
是錯誤的,但因此clac(5px + 2.7em)
是正確的,因為px和em都是長度單位。*
運算式的其中一個運算子必須是<number>
或<integer>
,所以clac(5px * 1.5)
是正確的,但clac(2.5em * 2.7em)
就不正確了(單位不能是平方數)。/
運算式右側必須是<number>
或<integer>
,左側如果是<integer>
,會是<number>
型別,否則會和左側度量單位相同,例如clac(5px / 1.5)
是合法的,單位會是px,而clac(50 * 2.5px)
就是錯誤的運算式了。clac(30px * 0)
的情況。clac()
必須支援至少20個運算子(包含數字、百分比與單位),如果超過使用者代理運算子數量限制的運算式,整個運算子整個運算式會被視為不合法。attr()
從HTML元素的屬性取得數值。attr()
,只要在表示式指定數值型別,但實際情況上的支援度仍須注意。