css函数计算

131 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

CSS函数计算

css是一门声明式语言,主要为标记语言html服务,随着前端技术的不断更新,css也变得越来越强大,过去只有声明式的css,现在也拥有了具备运算能力的函数。

css能做的事情也越来越多,js有变量与函数,css也有,下面我们列举css函数

css函数:

CSS函数指复杂类型或调用特殊处理的组件值类型。为单调的属性声明增加了更强大的点缀,让简单的CSS变得更有艺术感。其语法也很简单,形式为function(params),与JS的函数调用一样。在CSS代码中,只要带有()的属性值都是函数。

有了函数后,可将一系列相关计算交给浏览器处理,减少大量人工计算甚至无需人工计算,大大提高代码的编写效率。

css分类:

分类之前了解一下,css函数可能我们平时用的不多,最常用的可能就是url(),rgb(),rgba()等一些简单的函数,但是从w3c标准中查阅可知目前总共存在86个可用函数(不包括那些实验性的函数)

颜色函数

  • rgb() :RGB色彩模式
  • rgba() :RGBA色彩模式
  • hsl() :HSL色彩模式
  • hsla() :HSLA色彩模式
  • color() :色彩模式,基于当前颜色衍生出其他颜色

属性函数

  • attr() :属性
  • var() :变量

数学函数

  • clamp() :区间范围值
  • counter() :计数器
  • counters() :嵌套计数器
  • calc() :计算
  • max() :最大值
  • min() :最小值

背景函数

  • url() :图像路径
  • element() :图像映射,渲染指定元素为图像
  • image-set() :图像集合,根据屏幕分辨率匹配图像
  • linear-gradient() :线性渐变
  • radial-gradient() :径向渐变
  • conic-gradient() :锥形渐变
  • repeating-linear-gradient() :重复线性渐变
  • repeating-radial-gradient() :重复径向渐变
  • repeating-conic-gradient() :重复锥形渐变

滤镜函数

  • blur() :模糊
  • brightness() :亮度
  • contrast() :对比度
  • drop-shadow() :阴影
  • grayscale() :灰度
  • hue-rotate() :色相旋转
  • invert() :反相
  • opacity() :透明度
  • saturate() :饱和度
  • sepia() :褐色

图形函数

  • circle() :圆形
  • ellipse() :椭圆形
  • inset() :矩形
  • path() :路径
  • polygon() :多边行

变换函数

  • matrix() :矩阵
  • matrix3d() :3D矩阵
  • perspective() :视距
  • rotate() :旋转
  • rotate3d() :3D旋转
  • rotateX() :X轴旋转
  • rotateY() :Y轴旋转
  • rotateZ() :Z轴旋转
  • scale() :缩放
  • scale3d() :3D缩放
  • scaleX() :X轴缩放
  • scaleY() :Y轴缩放
  • scaleZ() :Z轴缩放
  • skew() :扭曲
  • skewX() :X轴扭曲
  • skewY() :Y轴扭曲
  • translate() :位移
  • translate3d() :3D位移
  • translateX() :X轴位移
  • translateY() :Y轴位移
  • translateZ() :Z轴位移

缓动函数

  • cubic-bezier() :贝塞尔曲线
  • steps() :逐帧

这些分类中,我们也发现有很多都用不上或不实用,所以也列举几个非常有用的函数

颜色函数

颜色函数是最常见的函数之一,可用在background-color,color,border-color,caret-color等属性中。

RGB色彩模式

声明一个颜色值为白色,普通声明方式color: white,color: #fff.使用颜色函数,可声明为color:rgb(255,255,255)或rgba(255,255,255,1)

rgb()R表示红色G表示绿色B表示蓝色,而rgba()多出来的A表示透明度。Aopacity声明的透明度不同,rgba()声明的透明度不会应用到子节点中,而opacity声明的透明度会应用到子节点中。

属性函数

attr(val)用于返回节点属性,经常会和伪元素content一起搭配使用

<h1 class="hello" data-name="world"></h1>
h1 {
    &:before {
      content: attr(class)
}
    &:after {
       content: attr(data-name)
     }
}

var()函数用于引入自定义属性,是css变量的组成之一link.juejin.cn/?target=htt…

数学函数

calc()用于动态计算单位,数值,长度,角度,时间,百分比等都能作为参数,可不需要人工计算

  • 数值整数浮点数
  • 长度pxemremvwvh
  • 角度degturn
  • 时间sms
  • 百分比%

calc()函数虽然很好用,不过也有一些规则

  • 四则运算:只能使用+-*/作为运算符号
  • 运算顺序:遵循加减乘除运算顺序,可用()提升运算等级
  • 符号连接:每个运算符号必须使用空格间隔
  • 混合计算:可混合不同计量单位动态计算

还有一些其他函数也可以去研究研究,这里就列举以上几个常用的。