發布日期:2024 年 5 月 14 日
所有主要引擎現在都支援 CSS 階梯值數學函式:round()、mod() 和 rem()。
階梯式值函式會根據另一個階梯式值轉換指定值。
round() 函式
round() 函式會採用要四捨五入的值、四捨五入間隔和選用的四捨五入策略。系統會根據四捨五入策略,將值四捨五入至最接近的四捨五入間隔整數倍數。
要捨入的值或捨入間隔,必須是 CSS 自訂屬性。雖然可以為這兩個值設定硬式編碼,但如果您可以自行計算值,就沒有必要四捨五入。
以下 CSS 會將 --my-font-size 的值四捨五入至 1rem 的間隔。
font-size: round(var(--my-font-size), 1rem);
預設捨入策略為 nearest。包含四捨五入策略的先前範例如下:
font-size: round(nearest,var(--my-font-size), 1rem);
四捨五入策略的可能值如下:
up:等同於 JavaScriptMath.ceil()方法。將值向上捨入至最接近四捨五入間隔的整數倍數。down:等同於 JavaScriptMath.floor()方法。將值向下捨去至最接近四捨五入間隔的整數倍數。nearest(預設):等同於 JavaScriptMath.round()。將值向上或向下捨入至最接近的四捨五入間隔整數倍數。to-zero:等同於 JavaScriptMath.trunc()方法。將值四捨五入至最接近的捨入間隔 (較接近零) 整數倍數。
如要進一步瞭解 round(),請參閱 Dan Wilson 撰寫的The New CSS Math: round()。
rem() 和 mod() 函式
rem() 和 mod() CSS 函式與 JavaScript 餘數運算子 (%) 的運作方式類似。這兩個函式會採用兩個值,第一個 (除以) 除以第二個 (除數),並傳回餘數。
margin: rem(18px, 5px); /* returns 3px */
這兩個函式之間的差異在於 rem() 一律會採用除數的符號,因此如果第一個值為正數,傳回的值也會是正數。mod() 函式會採用除數的符號。
如要進一步瞭解 rem() 和 mod(),請參閱 Dan Wilson 撰寫的新 CSS 算式:rem() 和 mod()。