新CSS Math方法中rem()和mod()的使用

CSS 添加了許多新的數(shù)學(xué)函數(shù)來補充舊有的函數(shù)(如 calc()
和最近的 clamp()
)。這些函數(shù)最終都表示一個數(shù)值,但其工作原理的細微差別并不總是一開始就很清楚。本文介紹每個函數(shù)的常見用例以及不太常見的用例。
rem() 函數(shù)的基礎(chǔ)知識
余數(shù)的數(shù)學(xué)概念來自除法,表示一個數(shù)不能平均除以另一個數(shù)時的余數(shù)。例如,在 9 ÷ 4
中, 9
不是 4
的倍數(shù),因此 4
不能平均分成 9
。你可以把兩個 4
相加,得到 8
,但是你仍然有一個 1
余數(shù)來得到 9
,所以 1
就是我們的余數(shù)。
在 JavaScript 中,我們可以使用運算符來實現(xiàn)這一功能: %
:
console.log(9 % 4); // 1 console.log(5 % 4.1); // 0.9 console.log(1003 % 5); // 3
在 CSS 中,我們現(xiàn)在可以使用 rem()
函數(shù)來計算余數(shù)。它接受兩個參數(shù),就像 JavaScript 中使用余數(shù)操作符 %
的兩個數(shù)字一樣。在數(shù)學(xué)術(shù)語中,第一個數(shù)字是被除數(shù),第二個是除數(shù)。
下面的 CSS 表示相當于前面的 JavaScript 示例:
line-height: rem(9, 4); /* 1 */ line-height: rem(5, 4.1); /* 0.9 */ line-height: rem(1003 % 5); /* 3 */
由于我們使用的是 CSS,因此還必須考慮單位。兩個參數(shù)值的類型必須相同,例如長度或角度表示法。
rotate: rem(20deg, 5deg); /* 0deg */ rotate: rem(20deg, 7deg); /* 6deg */ rotate: rem(20deg, 3deg); /* 2deg */
如果單位類型相同,則可以混合使用。例如,我們可以混合使用 deg
和 turn
這兩個單位,因為它們都表示角度。
rotate: rem(100deg, .25turn); /* 10deg (100 % 90) */ rotate: rem(200deg, .25turn); /* 20deg (200 % 90) */
值總是取第一個參數(shù)(被除數(shù))的符號。因此,如果被除數(shù)是負數(shù),結(jié)果也將是負數(shù)。第二個參數(shù)(除數(shù))的符號對結(jié)果沒有影響。
line-height: rem(9, 4); /* 1 */ line-height: rem(-9, 4); /* -1 */ line-height: rem(9, -4); /* 1 */ line-height: rem(-9, -4); /* -1 */
mod() 函數(shù)的基礎(chǔ)知識
與余數(shù)概念密切相關(guān)的是模函數(shù)。當被除數(shù)和除數(shù)的符號相同時,兩個函數(shù)的結(jié)果相同。
line-height: rem(9, 4); /* 1 */ line-height: mod(9, 4); /* 1 */ line-height: rem(-9, -4); /* -1 */ line-height: mod(-9, -4); /* -1 */
然而,rem()
函數(shù)取被除數(shù)的符號,而 mod()
函數(shù)則取除數(shù)的符號。
line-height: mod(9, 4); /* 1 */ line-height: mod(-9, 4); /* 1 */ line-height: mod(9, -4); /* -1 */ line-height: mod(-9, -4); /* -1 */
而最重要的是... 當你的符號混合時,你必須用不同的方式來思考 mod()
函數(shù)。讓我們從一個例子開始:
line-height: rem(-9, 4); /* 1 */ line-height: mod(-9, 4); /* -3 */ line-height: rem(9, -4); /* -1 */ line-height: mod(9, -4); /* 3 */
當然,以下是這段話的中文翻譯:
如果去掉符號,對于余數(shù),我們通常會考慮除數(shù)的多少倍可以放入被除數(shù)中。在 rem(9, 4)
的情況下,兩個 4 的倍數(shù)可以放入 9 中(因為 2 * 4 = 8
),余數(shù)是 1(因為 9 - 8 = 1
)。
對于mod()
函數(shù),在一個符號為負數(shù)而另一個符號為正數(shù)的情況下,它會尋找比被除數(shù)更大的倍數(shù)。所以對于 mod(9, -4)
,你要尋找剛剛超過被除數(shù)的倍數(shù)(4 * 3 = 12)。然后像往常一樣,我們再查看差值,所以答案是 12 - 9 = 3
。
到此這篇關(guān)于新CSS Math方法中rem()和mod()的使用的文章就介紹到這了,更多相關(guān)CSS rem mod內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 本文主要介紹了CSS中calc(100%-100px)不加空格不生效,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)2023-05-05
- CSS3新增的函數(shù)中有一個非常好用的函數(shù),就是calc()函數(shù),用過的都說好,這篇文章我們來嘮一老calc函數(shù),感興趣的朋友一起看看吧2022-06-23
- 大家都知道Calc方法有個很大的好處就是用在流體布局上,可以通過calc()計算得到元素的寬度,本文通過一個例子給大家詳細介紹,需要的朋友參考下吧2021-06-03
CSS使用calc()獲取當前可視屏幕高度的實現(xiàn)
這篇文章主要介紹了CSS使用calc()獲取當前可視屏幕高度的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編2020-07-14深入理解CSS中的數(shù)學(xué)表達式calc()
數(shù)學(xué)表達式calc()是CSS中的函數(shù),主要用于數(shù)學(xué)運算。這篇文章給大家介紹了CSS中的數(shù)學(xué)表達式calc()的相關(guān)知識,感興趣的朋友一起看看吧2020-01-19- 這篇文章主要介紹了淺析CSS中calc()的使用的相關(guān)資料,需要的朋友可以參考下2016-05-10
css -webkit-line-clamp WebKit的CSS擴展(WebKit是私有屬性)
-webkit-line-clamp 是一個 不規(guī)范的屬性(unsupported WebKit property),它沒有出現(xiàn)在 CSS 規(guī)范草案中,不過我們經(jīng)常在文本溢出中使用這個參數(shù)2018-03-14