CSS3 filter 滤镜为图片提供了非常强大的效果,只需简单地给图片加上 filter 属性,就可以实现 ps 出来的效果。
filter 提供了多种可视效果,而这些效果又可以互相混合,形成新的效果。接下来就用下面这张原图来体验一下 filter 的各种效果。
![]()
filter 函数
该函数接受一个 css 长度值作为参数,可以是 px/vw/vh/rem 等单位,唯独不能是 % 。值越大越模糊。
1 | img{ |

使图片更亮或者更暗。参数为百分比,默认为1。当参数为 0 时,图片全黑;参数可以大于 100%,也可以写成小数点的形式。
1 | img{ |

对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小。参数为百分比,默认为1。
1 | img{ |

使图片变暗或更加鲜明。参数为百分比,默认为1,可以大于 100%。
1 | img{ |

跟 CSS3 中的 opacity 属性效果是一致的。而使用 filter,一些浏览器为了提升性能会提供硬件加速。
1 | img{ |

该函数与 CSS3 中的 box-shadow 属性的视觉效果是一致的,参数也跟该属性的值相似。为什么只说相似呢?因为 box-shadow 有个属性值 inset 将阴影效果设为内阴影或者外阴影,而 drop-shadow() 是没有这个参数的。而 spread 参数,兼容却很差,加了也不会渲染,box-shadow 的 spread 值是可以渲染的,所以 drop-shadow() 函数就可以不要写这个参数了。
1 | img{ |

将图像转为灰度图像。参数为百分比,默认为0。若设为 100%,则完全转为灰度图像。
1 | img{ |

色相是色彩的首要特征,是区别各种不同色彩的最准确的标准。事实上任何黑白灰以外的颜色都有色相的属性,而色相也就是由原色、间色和复色来构成的。hue-rotate() 函数通过旋转角度对色相进行旋转从而改变图像在视觉上的效果。参数为度数,单位为 deg
1 | img{ |

反色又叫补色,红的补色是绿色,蓝的补色是橙色,黄的补色是紫色,由这三种对比关系可引出很多对比的反色。在“画图”程序中,反色操作是指把画面中的黑色变成白色,白色变成黑色,绿色变成红色,黄色变成紫色。参数为百分比,不能超过 100%。
1 | img{ |

将图像转换为深褐色,发黄老旧的效果。参数为百分比,默认为 0,不超过 100%。
1 | img{ |

复合函数
上面的例子都只是单个效果的展示,而这些效果,都可以混合在一起使用,生成更多的视觉效果。
1 | img{ |
