004.CSS 函数梳理
出处:掘金
原作者:ErpanOmer
CSS 中的函数并非传统意义上的编程函数,而是一些用于计算、颜色生成、路径控制、动态调整值等的表达结构。合理运用这些函数,可以极大地增强样式的灵活性和响应性
本文将从功能分类出发,系统梳理 CSS 所有主流函数及其用法
颜色相关函数
rgb() / rgba()
用于生成红绿蓝三原色混合的颜色
color: rgb(255, 0, 0); /* 红色 */
color: rgba(0, 0, 255, 0.5); /* 半透明蓝色 */
hsl() / hsla()
HSL 表示色相(Hue)、饱和度(Saturation)、亮度(Lightness)
color: hsl(120, 100%, 50%); /* 纯绿 */
color: hsla(120, 100%, 50%, 0.3); /* 30% 透明的绿 */
color-mix()
将两种颜色按比例混合,仅现代浏览器支持(Chrome 111+)
color: color-mix(in srgb, red 40%, blue 60%);
尺寸与计算函数
calc()
允许在 CSS 中进行基本运算
width: calc(100% - 20px);
padding: calc(1rem + 10px);
min() / max() / clamp()
用于设置动态的最小值、最大值或限制值范围
font-size: min(3vw, 20px);
width: max(300px, 50%);
font-size: clamp(14px, 2vw, 24px);
动画相关函数
cubic-bezier()
自定义缓动曲线,控制动画速度
transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
steps()
定义帧动画步进数
animation-timing-function: steps(5, end);
资源路径函数
url()
加载外部资源如图片、字体等
background-image: url('/images/banner.jpg');
@font-face {
font-family: 'MyFont';
src: url('myfont.woff2');
}
变换函数
rotate() / scale() / translate() 等
在 transform 属性中使用,实现二维或三维变换
transform: rotate(30deg) scale(1.5) translateX(10px);
matrix() / matrix3d()
低级变换控制函数,控制矩阵变换
transform: matrix(1, 0, 0, 1, 100, 100);
裁剪函数(Clip Path)
circle() / ellipse() / polygon()
用于裁剪元素形状
clip-path: circle(50% at center);
clip-path: ellipse(60% 40% at center);
clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
变量和属性提取
var()
调用 CSS 变量
:root {
--main-color: #ff6600;
}
div {
color: var(--main-color);
}
attr()(实验性)
从 HTML 属性中提取内容,常用于伪元素
[data-label]:before {
content: attr(data-label);
}
滤镜函数
图像滤镜函数:blur()、brightness()、contrast() 等
用于图像视觉效果调整
filter: blur(4px) brightness(1.2);
安全区域与系统变量函数
env() / constant()
用于读取设备的环境变量,常见于 iPhone 刘海屏
padding-top: env(safe-area-inset-top);
constant() 是旧版本写法,不推荐
非主流函数(了解即可)
element()(仅 Firefox 支持)
将 HTML 元素作为图像资源
background-image: element(#myDiv);