CSS 滤镜生成器
CSS filter 属性可对任何元素应用图像处理效果,如模糊、亮度、对比度和饱和度,而不仅仅是图片。将多个滤镜串联并正确设置单位是容易出错的地方。此生成器可为五种最常见的函数构建 filter 声明:模糊、亮度、对比度、灰度和饱和度。输入数值,然后复制生成的 CSS。
如何构建滤镜链
-
1
输入数值
模糊以像素为单位;亮度、对比度、灰度和饱和度以百分比为单位。
-
2
理解数值范围
亮度和对比度为 100% 表示没有变化,为 0% 时元素变为黑色或灰色。灰度从 0%(全彩)到 100%(完全去色);饱和度为 100% 时颜色保持不变。
-
3
生成 CSS
点击按钮,工具会输出包含全部五个函数的组合 `filter` 规则。
-
4
复制规则
复制结果并粘贴到样式表中。
-
5
检查顺序
函数从左到右依次应用。如果效果与预期不同,请调整数值。
滤镜函数
| 函数 | 单位 | 效果 |
|---|---|---|
blur() |
px | 高斯模糊。0 = 不模糊 |
brightness() |
百分比或小数 | 100% = 不变,0% = 全黑,200% = 亮度翻倍 |
contrast() |
百分比或小数 | 100% = 不变,0% = 全灰,200% = 对比度翻倍 |
saturate() |
百分比或小数 | 100% = 不变,0% = 灰度 |
grayscale() |
百分比或小数 | 0% = 不变,100% = 完全去色 |
sepia() |
百分比或小数 | 0% = 不变,100% = 完全棕褐色 |
hue-rotate() |
deg | 0deg = 不变。旋转色相环 |
invert() |
百分比或小数 | 0% = 不变,100% = 完全反转 |
opacity() |
百分比或小数 | 与 opacity 属性相同 |
drop-shadow() |
x y 模糊 颜色 | 类似 box-shadow,但会跟随不透明度/clip-path |
串联顺序很重要
filter: brightness(0.5) saturate(2) 先应用亮度,再应用饱和度,两个滤镜会叠加作用。
filter: saturate(2) brightness(0.5) 先应用饱和度。由于图像在被压暗之前更亮,色彩的饱和度会更明显。
视觉差异虽然细微,却真实存在。当滤镜链的效果不如预期时,不妨两种顺序都试一试。
常用配方
/* 褪色照片风格 */
filter: contrast(0.9) saturate(0.85) brightness(1.05);
/* 复古 / 褪色 */
filter: sepia(0.3) contrast(1.1) brightness(0.95);
/* 双色调近似 */
filter: grayscale(1) sepia(1) hue-rotate(180deg) saturate(1.5);
/* 压暗主视觉图 */
filter: brightness(0.6);
/* 禁用状态 */
filter: grayscale(1) opacity(0.6);
/* 毛玻璃叠加层 */
filter: blur(12px) saturate(1.3);
用于毛玻璃效果的 backdrop-filter
filter 作用于元素自身;backdrop-filter 作用于半透明元素背后的内容,也就是 iOS 普及的毛玻璃效果。
.modal-backdrop {
background: rgba(255, 255, 255, 0.5);
backdrop-filter: blur(20px) saturate(1.2);
}
支持情况:所有现代浏览器;Firefox 从 103 版起终于无需开启标志即可支持。
性能提示
blur()是开销最大的滤镜,因为它需要用卷积核对每个像素做运算。在 4K 主视觉图上做 30px 模糊会实实在在地掉帧。grayscale、sepia、brightness等是逐像素的颜色变换,开销很低。- 现代浏览器中滤镜会经 GPU 加速,但在低端设备上对
blur()做动画仍会卡顿。 - 做动画前最好先设置
will-change: filter。
filter: drop-shadow() 与 box-shadow 的区别
box-shadow跟随元素的边框盒(尊重border-radius)。filter: drop-shadow()跟随元素的非透明像素,因此会沿着clip-path形状、PNG 透明区域和 SVG 路径描绘阴影。
为裁剪过或带透明区域的图像添加阴影时用 drop-shadow;标准卡片和方框则用更快的 box-shadow。
常见问题
是的,滤镜会把该元素及其所有后代作为一个整体来处理。若对父元素应用滤镜,子元素也会一并包含在内。如需只对父元素的背景应用滤镜,请将内容放入独立的堆叠上下文,或改用 backdrop-filter。
因为模糊会作用于整个元素,包括已渲染的文字。仅靠普通的 filter 无法在保持文字清晰的同时模糊背景。请在半透明叠加层上使用 backdrop-filter,并把文字放在被滤镜处理的元素之外。
是的,所有滤镜功能均支持动画效果。请特别注意移动端的模糊效果表现,动态调整模糊半径会显著增加资源消耗。grayscale、sepia和brightness的动画效果运行成本较低。
是的,CSS filter 对 SVG 元素的处理方式与其他DOM元素完全相同。 SVG 还拥有更丰富的<filter>元素系统,该系统功能更强大但代码更为冗长。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
cURL 命令生成器
根据 HTTP URL、请求头、认证、JSON、原始数据或表单字段,在浏览器中私密生成适用于 POSIX Shell 或 PowerShell 的 cURL 命令。
此工具还提供其他语言版本
- CSS Filtre Üreticisi [TR]
- Generador de Filtros CSS [ES]
- مولد مرشح CSS [AR]
- Générateur de filtres CSS [FR]
- CSS-filtergenerator [NL]
- CSS 필터 생성기 [KO]
- Generator Filter CSS [ID]
- CSS Filter Generator [EN]
- Bộ tạo bộ lọc CSS [VI]
- CSSフィルター生成器 [JA]
- เครื่องสร้าง CSS Filter [TH]
- Gerador de Filtros CSS [PT]
- CSS-Filter-Generator [DE]
- CSS-filtergenerator [SV]
- Generator filtrów CSS [PL]
- Generatore di Filtri CSS [IT]
- Генератор фильтров CSS [RU]