css 添加了许多新的数学函数来补充旧有的函数(如 calc() 和最近的 clamp() ) 。这些函数最终都表示一个数值 , 但其工作原理的细微差别并不总是一开始就很清楚 。本文介绍每个函数的常见用例以及不太常见的用例 。
rem() 函数的基础知识余数的数学概念来自除法,表示一个数不能平均除以另一个数时的余数 。例如,在 9 ÷ 4 中 , 9 不是 4 的倍数 , 因此 4 不能平均分成 9。你可以把两个 4 相加 , 得到 8 ,但是你仍然有一个 1 余数来得到 9 ,所以 1 就是我们的余数 。
在 JAVAScript 中 , 我们可以使用运算符来实现这一功能: % :
console.log(9 % 4); // 1console.log(5 % 4.1); // 0.9console.log(1003 % 5); // 3
在 CSS 中,我们现在可以使用 rem() 函数来计算余数 。它接受两个参数,就像 JavaScript 中使用余数操作符 % 的两个数字一样 。在数学术语中,第一个数字是被除数,第二个是除数 。
下面的 CSS 表示相当于前面的 JavaScript 示例:
line-height: rem(9, 4); /* 1 */line-height: rem(5, 4.1); /* 0.9 */line-height: rem(1003 % 5); /* 3 */
由于我们使用的是 CSS,因此还必须考虑单位 。两个参数值的类型必须相同 , 例如长度或角度表示法 。
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) */
值总是取第一个参数(被除数)的符号 。因此,如果被除数是负数 , 结果也将是负数 。第二个参数(除数)的符号对结果没有影响 。
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() 函数的基础知识与余数概念密切相关的是模函数 。当被除数和除数的符号相同时 , 两个函数的结果相同 。
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() 函数取被除数的符号,而 mod() 函数则取除数的符号 。
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() 函数 。让我们从一个例子开始:
line-height: rem(-9, 4); /* 1 */line-height: mod(-9, 4); /* -3 */line-height: rem(9, -4); /* -1 */line-height: mod(9, -4); /* 3 */
当然 , 以下是这段话的中文翻译:
如果去掉符号,对于余数,我们通常会考虑除数的多少倍可以放入被除数中 。在 rem(9, 4) 的情况下 , 两个 4 的倍数可以放入 9 中(因为 2 * 4 = 8),余数是 1(因为 9 - 8 = 1) 。
对于mod() 函数,在一个符号为负数而另一个符号为正数的情况下,它会寻找比被除数更大的倍数 。所以对于 mod(9, -4),你要寻找刚刚超过被除数的倍数(4 * 3 = 12) 。然后像往常一样,我们再查看差值,所以答案是 12 - 9 = 3 。
【新 CSS Math方法:Rem 和 Mod()】
推荐阅读
- 2024年十大网络安全趋势和创新
- 潘粤明 张雨绮 姜超的新剧《南海归墟》疑似撤档,原因又是他,坑完封神又坑盗墓
- 佘诗曼《新闻女王》拍出真大女主,假如给内地团队会拍成什么样?
- 40集谍战新戏《潜渊》将启!毛卫宁导演坐镇,你期待谁主演?
- 新闻女王∶从徐晓薇学历作假,才懂文慧心知她背叛,却重用的算计
- 《新闻女王》∶五位女主结局,文慧心圆满,家妍遗憾,刘艳成黑马
- 王楚然又有4部新作将袭,搭档男主高颜值,你最期待哪部?
- 新鞋子总是磨脚 新鞋子总是磨脚什么原因
- vivo发布nex 3s系列新机,售价4998元起
- 京东二手准新机是什么意思 京东二手准新机的含义