min() max() 和 clamp()

min()


min() 函数可以从一个逗号分隔的表达式列表中选择最小的值作为属性的值。
接受一个或多个用逗号分隔的表达式作为他的参数,数值最小的表达式的值将会作为指定的属性的值。
例如:    min(8px, calc(100vw - 40px))
            函数会在 8px 和 calc(100vw - 40px) 的计算值之间进行比较,选择一个当前最小的值作为width属性的最大值
            

max()

语法:clamp(MIN, VAL, MAX)
max() 函数可以从一个逗号分隔的表达式列表中选择最大的值作为属性的值。
接受一个或多个用逗号分隔的表达式作为他的参数,数值最大的表达式的值将会作为指定的属性的值。
例如:    width: max(10vw, 4em, 80px);
            宽度最小会是 80px,除非视图宽度大于 800px 或者是一个 em 比 20px 宽。简单来说,最小宽度是 80px


            
联合使用


根据视口宽度动态变化 border-radius

.div{
  border-radius: max(
    0px,
    min(8px, calc((100vw - 4px - 100%) * 9999))
  );
}

  • 我们有一个 max() 函数,在 0pxmin()的计算值之间进行比较,并选择较大的值。

  • min() 函数在 8pxcalc((100vw - 4px - 100%) * 9999 的计算值之间进行比较,这会得到一个非常大的正数或负数。

  • 9999 是一个很大的数字,这样 min 的值都是 8px

Clamp()


clamp() 函数接收三个用逗号分隔的表达式作为参数,按最小值、首选值、最大值的顺序排列。

clamp() 函数的作用是把一个值限制在一个上限和下限之间,当这个值超过最小值和最大值的范围时,在最小值和最大值之间选择一个值使用。
例如:    width: clamp(100px, 100%, 200px);

  1. 当首选值比最小值要小时,则使用最小值。
  2. 当首选值介于最小值和最大值之间时,用首选值。
  3. 当首选值比最大值要大时,则使用最大值。

猜你喜欢

转载自blog.csdn.net/m0_38136631/article/details/128102112