CSS 函数(CSS Functions) 是在 CSS 属性值中使用的“内置方法”,用于计算、颜色处理、尺寸适配、变换、判断等。
var() —— 使用 CSS 变量color: var(--primary-color);
width: var(--w, 100px);
calc() —— 动态计算width: calc(100% - 24px);
height: calc(var(--h) * 2);
规则:
+ - * / 必须有空格min() / max() / clamp()width: min(600px, 100%);
font-size: clamp(14px, 2vw, 20px);
/* 视口宽度小时不小于 14px,大时不超过 20px,中间按 2vw 动态调整 */
clamp(min, preferred, max) = 响应式神器
clamp() 返回的值会:
rgb() / rgba()color: rgb(255 0 0);
color: rgba(0, 0, 0, 0.5);
hsl() / hsla()background: hsl(210 50% 40%);
非常适合做主题色调整
color-mix()(现代,旧浏览器不支持)background: color-mix(in srgb, red 70%, white);
语法:
color-mix(in colorspace, color1 percentage, color2 percentage)
in colorspace:颜色空间,指定混合使用的色彩模型
color1 和 color2:要混合的颜色
百分比:每个颜色在混合中的占比
示例说明:
.element {
/* 混合红色和蓝色,各占50% */
color: color-mix(in srgb, red, blue);
/* 红色70%,蓝色30% */
background-color: color-mix(in srgb, red 70%, blue 30%);
/* 只指定一个百分比 */
border-color: color-mix(in srgb, #ff0000 25%, #0000ff);
/* 等同于:红色25%,蓝色75% */
}
linear-gradient()background: linear-gradient(to right, #409eff, #67c23a);
radial-gradient()background: radial-gradient(circle, #fff, #000);
conic-gradient()background: conic-gradient(red, yellow, green);
url()background-image: url("./bg.png");
content: attr(data-text);
目前主要用于 content
transform: translate(50px, 20px) rotate(45deg) scale(1.2);
常见子函数:
cubic-bezier()transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
steps()animation: typing 2s steps(10);
repeat()(Grid)grid-template-columns: repeat(3, 1fr);
fit-content()width: fit-content(300px);
env() —— 环境变量padding-bottom: env(safe-area-inset-bottom);
/* safe-area-inset-bottom: iOS 刘海屏 */
filterfilter: blur(4px) brightness(1.2) grayscale(50%);
backdrop-filterbackdrop-filter: blur(10px);
counter()content: counter(item);
round() / mod()(新)width: round(33.3%, 1%);