CSS 滤镜生成器,免费

使用滑块调整 CSS filter 属性,实时查看效果。复制生成的代码。

滤镜控制

预览

滤镜预览

生成的 CSS


      
    

使用方法

  1. 调整滤镜滑块:使用滑块控制模糊、亮度、对比度、饱和度、色相旋转、不透明度、灰度、棕褐和反色。
  2. 实时预览:拖动滑块时,示例图片或元素会即时更新。
  3. 复制 CSS:完整的 filter 属性值(例如 filter: brightness(1.2) contrast(1.5) saturate(0.8))可直接粘贴到您的样式表。

为什么使用 CSS 滤镜生成器?

CSS 滤镜让您在浏览器中直接应用图像处理效果 , 模糊、对比度、亮度、色彩偏移 , 无需 Photoshop 或图像编辑软件。它们可作用于图片、视频和任何 HTML 元素。手写 filter 属性链需要记住精确的函数名和有效范围。这款生成器提供直观的滑块与即时视觉反馈,让您获得想要的效果。

功能特性

常见问题

CSS 滤镜可以用于视频吗?

可以。CSS filter 属性适用于任何元素,包括 <video>、<img>、<div> 和 <canvas>。应用于视频时,滤镜会在播放时实时渲染。

filter 和 backdrop-filter 有什么区别?

filter 将效果应用于元素本身及其所有子元素。backdrop-filter 将效果应用于元素后面(下面)的内容 , 常用于毛玻璃效果。

CSS 滤镜会影响性能吗?

带模糊或复杂合成的滤镜对 GPU 较为吃重。对于带动画的滤镜,请确保元素位于自己的合成层(可添加 transform: translateZ(0) 作为提示)。图标和图片上的静态滤镜影响很小。

CSS filter 的真正作用

CSS filter 属性在浏览器将元素绘制到屏幕之前,将图形效果(模糊、对比度调整、颜色偏移、投影)应用于该元素及其子元素。处理完全在浏览器的渲染管线中进行,通常由 GPU 加速,无需 JavaScript 参与。效果是仅视觉的:底层 HTML、图像引用的文件以及布局都保持不变。使用 filter: grayscale(1) 显示的照片在文件中仍保留其原始颜色;浏览器仅在显示时转换为灰度。

CSS filter 提供十个函数:blur(px) 高斯模糊、brightness(n)contrast(n) 色调调整、saturate(n) 颜色强度、hue-rotate(deg) 偏移色轮、opacity(n) 透明度、grayscale(n)sepia(n) 去饱和效果、invert(n) 负片输出,以及 drop-shadow(...) 形状感知阴影(与 box-shadow 不同,drop-shadow 跟随实际渲染的形状包括透明部分,非常适合在图标或带切割边的 PNG 图像上添加阴影)。函数链式组合:filter: brightness(1.2) contrast(1.3) saturate(0.9) 按顺序应用所有三个。

这对现代 Web 设计的重要性:十年前,为了设计一致性调整图像亮度、色调或饱和度需要在 Photoshop 中预处理每张图片并重新导出。CSS filter 将相同的调整带到运行时,以非破坏性方式应用。你可以提供一张图片并根据主题、悬停状态或用户偏好以不同方式呈现。你还可以使用滤镜进行无障碍处理:反相灰度照片作为占位符,或暗化图像叠加层以实现高对比度文本可读性。权衡是某些滤镜(特别是模糊)的性能以及滤镜也影响子元素的事实,这可能会出乎意料地级联。

本工具的幕后运作

工具中的每个滑块都绑定到单一滤镜函数。当你移动滑块时,JavaScript 读取该值,使用该值构造滤镜函数字符串(例如 brightness(1.4)),并将所有活动函数连接成单个 filter CSS 字符串。该字符串作为内联样式应用于预览图像,当浏览器以新滤镜重新绘制时产生即时视觉反馈。JavaScript 中不处理任何图像数据:实际的像素级数学发生在浏览器渲染引擎内部,通常在 GPU 上。

代码框中显示的生成 CSS 是应用于预览的相同字符串。点击「复制 CSS」,工具使用现代 navigator.clipboard.writeText() API 将该字符串写入剪贴板。该字符串已准备好粘贴到任何元素的 style 属性或样式表中的任何类声明中。该工具还支持加载你自己的图像:选择一个文件,它会在浏览器中成为临时 blob: URL,从不上传到任何地方,滤镜会在你的实际图像上预览,以便你可以为你的内容调出确切的外观。

重置行为是按滤镜的:每个滑块都有自己的重置按钮,只将该滤镜返回到其无效果值(乘数为 1,hue-rotate 为 0deg,blur 为 0px)。「全部重置」按钮同时将每个滑块返回到中性。该工具的状态仅存在于内存中;刷新页面,你的滤镜组合就会消失。没有服务器存储你选择的滤镜值,没有分析跟踪你尝试的组合。该工具是一个无状态、广告支持的 CSS 试验场。

CSS 滤镜简史

真实世界的工作流

常见陷阱及其含义

隐私:一切都在你的浏览器中发生

CSS 生成器工具有两种风格:运行客户端 JavaScript 的简单 HTML 页面(私密、快速)和保存项目的云编辑器(协作但存在隐私权衡)。这个工具是第一种。你的滑块值、生成的 CSS,甚至你上传以进行预览的任何图像都完全保留在你的浏览器会话中。刷新页面,状态就会消失,除非你先复制 CSS 或保存截图。

「上传你自己的图像」功能值得隐私说明:当你选择文件时,浏览器会创建一个指向内存的本地 blob: URL,预览会显示你的图像并应用滤镜。不会向任何服务器发出请求。在上传期间打开浏览器的网络选项卡;你会看到零出站流量。图像只存在于你浏览器标签的内存中,当你关闭标签时被擦除。对于机密图像(专有设计、医疗扫描、NDA 保护的截图),这是重要的隐私属性。

什么时候另一个工具是正确选择

更多常见问题

我可以平滑地动画化 CSS 滤镜变化吗?

可以,但有警告。filter 属性在 CSS 中可动画化,并且具有相同顺序中相同函数的两个滤镜链之间的过渡会平滑插值(blur(0px) brightness(1)blur(10px) brightness(1.5) 有效)。在过渡中间添加或删除函数会突然跳变。对于平滑的多滤镜动画,在开始和结束状态都列出每个你想要过渡的函数,在你不希望应用特定滤镜的地方使用中性值(brightness(1)、saturate(1)、blur(0px))。

CSS filter 在背景图像上工作吗?

是的。CSS filter 应用于整个元素,包括其背景图像、内容和子元素。如果你只想过滤背景图像而不是前景内容,典型方法是为背景使用单独的子元素(例如定位的 ::before 伪元素),并在其上应用滤镜,然后将内容作为未过滤的兄弟放在顶部。当你想过滤透明元素后面可见的内容时,backdrop-filter 属性也很有用。

CSS 滤镜被搜索引擎索引吗?

CSS 滤镜纯粹是视觉的,不会改变 HTML 内容。搜索引擎索引底层内容(图像 alt 文本、周围文本),就好像滤镜未被应用一样。具有 filter: grayscale(1) 的灰度图像仍然根据其文件和 alt 文本被索引为原始彩色图像。这通常是你想要的:滤镜对 SEO 或屏幕阅读器没有副作用。

为什么 drop-shadow 看起来与 box-shadow 不同?

Box-shadow 在元素的矩形框周围绘制阴影,忽略任何透明度。Drop-shadow(filter)绘制跟随实际渲染形状的阴影,包括透明区域。对于带切割边的 SVG 图标或带透明度的 PNG,drop-shadow 产生与可见轮廓匹配的形状感知阴影。同一元素上的 Box-shadow 会在边界框周围显示矩形阴影,看起来不对。对形状感知阴影使用 drop-shadow,对矩形元素使用 box-shadow。

opacity 和 filter: opacity() 的区别是什么?

在大多数浏览器中,它们产生视觉上相同的结果。技术差异:opacity 是顶级属性,而 filter: opacity() 是滤镜链的一部分,与其他滤镜组合。如果你有 filter: blur(5px) opacity(0.5),两者都作为单个 GPU 操作一起应用。在滤镜链外使用 opacity 在大多数情况下工作相同。对于独立透明度坚持使用 opacity;仅在与其他滤镜链接时使用 filter: opacity()

我可以快速重置所有滤镜吗?

是的。设置 filter: none 以在一个声明中删除所有滤镜。这是重置的最干净方法,特别是对于你想要在悬停退出时删除所有滤镜效果的悬停状态。或者,将每个滤镜函数设置为其中性值:filter: brightness(1) contrast(1) saturate(1) blur(0px) hue-rotate(0deg) grayscale(0) sepia(0) invert(0) opacity(1) 在功能上等同于 filter: none,但更冗长。

相关工具

CSS 渐变生成器,免费 颜色转换器,免费 图片滤镜与效果,免费 CSS 图案生成器,免费