当前位置:首页 > 科技  > 软件

新 CSS Math方法:Rem() 和 Mod()

来源: 责编: 时间:2023-11-22 09:14:01 389观看
导读CSS 添加了许多新的数学函数来补充旧有的函数(如 calc() 和最近的 clamp() )。这些函数最终都表示一个数值,但其工作原理的细微差别并不总是一开始就很清楚。本文介绍每个函数的常见用例以及不太常见的用例。rem() 函数

2Hb28资讯网——每日最新资讯28at.com

CSS 添加了许多新的数学函数来补充旧有的函数(如 calc() 和最近的 clamp() )。这些函数最终都表示一个数值,但其工作原理的细微差别并不总是一开始就很清楚。本文介绍每个函数的常见用例以及不太常见的用例。2Hb28资讯网——每日最新资讯28at.com

rem() 函数的基础知识

余数的数学概念来自除法,表示一个数不能平均除以另一个数时的余数。例如,在 9 ÷ 4 中, 9 不是 4 的倍数,因此 4 不能平均分成 9 。你可以把两个 4 相加,得到 8 ,但是你仍然有一个 1 余数来得到 9 ,所以 1 就是我们的余数。2Hb28资讯网——每日最新资讯28at.com

在 JavaScript 中,我们可以使用运算符来实现这一功能: % :2Hb28资讯网——每日最新资讯28at.com

console.log(9 % 4); // 1console.log(5 % 4.1); // 0.9console.log(1003 % 5); // 3

在 CSS 中,我们现在可以使用 rem() 函数来计算余数。它接受两个参数,就像 JavaScript 中使用余数操作符 % 的两个数字一样。在数学术语中,第一个数字是被除数,第二个是除数。2Hb28资讯网——每日最新资讯28at.com

下面的 CSS 表示相当于前面的 JavaScript 示例:2Hb28资讯网——每日最新资讯28at.com

line-height: rem(9, 4); /* 1 */line-height: rem(5, 4.1); /* 0.9 */line-height: rem(1003 % 5); /* 3 */

由于我们使用的是 CSS,因此还必须考虑单位。两个参数值的类型必须相同,例如长度或角度表示法。2Hb28资讯网——每日最新资讯28at.com

rotate: rem(20deg, 5deg); /* 0deg */rotate: rem(20deg, 7deg); /* 6deg */rotate: rem(20deg, 3deg); /* 2deg */

如果单位类型相同,则可以混合使用。例如,我们可以混合使用 deg 和 turn 这两个单位,因为它们都表示角度。2Hb28资讯网——每日最新资讯28at.com

rotate: rem(100deg, .25turn); /* 10deg (100 % 90) */rotate: rem(200deg, .25turn); /* 20deg (200 % 90) */

值总是取第一个参数(被除数)的符号。因此,如果被除数是负数,结果也将是负数。第二个参数(除数)的符号对结果没有影响。2Hb28资讯网——每日最新资讯28at.com

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() 函数的基础知识

与余数概念密切相关的是模函数。当被除数和除数的符号相同时,两个函数的结果相同。2Hb28资讯网——每日最新资讯28at.com

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() 函数则取除数的符号。2Hb28资讯网——每日最新资讯28at.com

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() 函数。让我们从一个例子开始:2Hb28资讯网——每日最新资讯28at.com

line-height: rem(-9, 4); /* 1 */line-height: mod(-9, 4); /* -3 */line-height: rem(9, -4); /* -1 */line-height: mod(9, -4); /* 3 */

当然,以下是这段话的中文翻译:2Hb28资讯网——每日最新资讯28at.com

如果去掉符号,对于余数,我们通常会考虑除数的多少倍可以放入被除数中。在 rem(9, 4) 的情况下,两个 4 的倍数可以放入 9 中(因为 2 * 4 = 8),余数是 1(因为 9 - 8 = 1)。2Hb28资讯网——每日最新资讯28at.com

对于mod() 函数,在一个符号为负数而另一个符号为正数的情况下,它会寻找比被除数更大的倍数。所以对于 mod(9, -4),你要寻找刚刚超过被除数的倍数(4 * 3 = 12)。然后像往常一样,我们再查看差值,所以答案是 12 - 9 = 3。2Hb28资讯网——每日最新资讯28at.com

2Hb28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-33351-0.html新 CSS Math方法:Rem() 和 Mod()

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Qt 全球峰会 2023 中国站:优化整体产品开发流程,为企业提供更多选择

下一篇: 打造定制线程池:Java多线程的艺术

标签:
  • 热门焦点
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 华为Mate60标准版细节曝光:经典星环相机模组回归

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 超级标准版旗舰!iQOO 11S全球首发iQOO超算独显芯片

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • iQOO Neo8 Pro真机谍照曝光:天玑9200+和V1+旗舰双芯加持

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
Top