冷色调需用 hue-rotate(-60deg 至 -120deg) 主导,辅以 brightness(1.05) 和 saturate(1.1),避免 contrast() 和 grayscale() 误用,注意 Safari/IE 兼容性及移动端性能瓶颈。
filter: sepia() 和 hue-rotate() 混合调出冷色纯靠 sepia(1) 只能发

hue-rotate() 能把图片整体往青蓝方向转——比如 hue-rotate(-90deg) 会让肤色变灰青、天空更湛蓝,视觉上立刻降温。
实操建议:
hue-rotate() 值越负越冷,常见有效区间是 -60deg 到 -120deg;超过 -180deg 开始反向变暖,容易翻车brightness(0.9) saturate(0.8) 保细节grayscale() 连用——灰度后色相旋转无效,顺序错了就白写filter: contrast() 拉高导致发灰发飘有人想靠提高对比度强化冷感,结果图片像蒙了层雾:高光炸裂、暗部死黑,冷色没出来,先丢层次。冷调的关键是“青蓝通道相对增强”,不是明暗拉满。
正确做法:
hue-rotate() + 小幅 saturate(1.1)(只加 10%,过量会荧光)brightness(1.05) 替代 contrast(1.3),后者会压缩中间调filter 在 Safari 旧版和 IE 完全不生效IE 全系无视 filter,Safari 9–13.1 对 hue-rotate() 支持不稳定(尤其 SVG 内嵌图)。如果项目必须兼容这些环境,不能只靠 CSS 滤镜。
可行退路:
手动读取像素,改 R/G/B 值(重点压红、提蓝,比如 r *= 0.7; b *= 1.3;) 切换源@supports (filter: hue-rotate(1deg)) { ... } 做特性检测,fallback 到 desaturate+overlayfilter 会掉帧在 iOS Safari 上,用 transform 动画同时跑 hue-rotate(),GPU 很容易扛不住,滑动卡顿明显。这不是代码写错,是渲染管线真实瓶颈。
缓解方案:
filter,改用 opacity 或 transform: scale()
will-change: filter 提前声明,但别滥用——它会强制升层,内存涨得快