CSS这几个函数很实用,也很简单

开发 前端
calc 函数的基本使用方法,在 CSS 还有几个函数:min()、max()和 clamp()函数。在不能保证目标用户的浏览器是否支持这些函数的时候,就使用固定值兜底,确保在旧版本的浏览器中样式不乱。

calc()

CSS 的 calc 函数非常实用,很多情况下,我们都会用到这个函数。

calc 函数支持加减乘除四种运算,但是,它也有限制:

  1. 运算符前后带有单位或者百分比的数值,只能进行加减,不能进行乘除运算;比如:width:calc(100px / 50%),这就是不合法的;
  2. 不能使用当前属性不支持数据单位,比如:width:calc(100% - 45deg),width 属性不支持 deg 单位,因此这样写法是错误的;
  3. calc 函数在进行除法运算的时候,除数不能为 0【也就是除号右边不能为 0】,比如:width:calc(100px / 0),这样的写法是❎的;
  4. calc 函数里面的运算符号两边一定有空,才能进行运算【乘法和除法没有这个限制,但是为了格式一致,要养成好习惯,都加上空格】;

这就是 calc 函数的基本使用方法,在 CSS 还有几个函数:min()、max()和 clamp()函数。在不能保证目标用户的浏览器是否支持这些函数的时候,就使用固定值兜底,确保在旧版本的浏览器中样式不乱。比如:

html{
    font-size: 16px;
    font-size: clamp(16px, calc(16px + 2 * (100vw - 400px) / 40), 24px)
}

min()

min()函数的具体语法为:min(expression[, expression])。

min 函数支持一个或者多个表达式,多个表达式的时候,用都好隔开,最后返回最小值,比如:width: min(100px, 230px, 20px),属性 width 的结果为 20 px。

max()函数和 min 函数语法相似,不同的是 max 函数返回最大值。

clamp()函数

clamp 函数返回的是一个区间范围数值,写法是这样:clamp(min, value, max)

min 表示最小值;value 表示首选值;max 表示最大值。clamp 函数的返回值结果有这几种:

  1. 如果value 的值 min~max 之间,那么 clamp 返回 value;
  2. 如果 value 大于 max,则返回 max;
  3. 如果 value 小于 min,则返回 min

比如这个页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        button {
            width: clamp(200px, 50px, 600px);
        }
    </style>
</head>
<body>
<button>按钮长度</button>
</body>
</html>

这个页面中 clamp 函数中 value 小于 min 的值,所以页面中按钮的 width 为 200px。

button {
    width: clamp(200px, 50vw, 600px);
}

这样按钮的长度就为 600px 了。有机会我们可以在项目中尝试一下这些新属性和新的写法。

责任编辑:武晓燕 来源: 读心悦
相关推荐

2022-09-26 12:17:14

clamp() 函数CSS

2020-07-03 18:14:20

JavaScript开发技术

2021-06-11 13:59:22

CSS原子类

2021-10-28 19:35:48

Go 控制超时

2023-11-30 08:19:52

伪类CSS

2018-12-24 08:46:52

Kubernetes对象模型

2022-05-31 09:42:49

工具编辑器

2022-02-21 16:16:24

灾难恢复解决方案备份

2020-12-07 10:59:01

Python数据工具

2020-11-16 16:04:42

CSS设计代码

2023-04-10 15:01:38

CSS开发

2015-08-27 09:30:38

2010-08-27 10:12:53

CSS

2023-12-06 12:04:52

Pythonhelp函数

2019-06-11 09:02:22

2024-04-19 09:02:32

前端调试技巧

2010-06-12 10:10:55

2018-01-14 23:07:36

戴尔

2017-10-30 12:49:43

2022-09-10 19:26:37

HTMLCSS
点赞
收藏

51CTO技术栈公众号