它的数据类型由下列过滤器函数之一指定。每个函数需要一个参数,如果参数无效,则滤镜不会生效。以下是对滤镜函数含义的解释:
blur():模糊图像
brightness()?:让图像更明亮或更暗淡
contrast():增加或减少图像的对比度
drop-shadow():在图像后方应用投影
grayscale():将图像转为灰度图
hue-rotate():改变图像的整体色调
invert():反转图像颜色
opacity():改变图像透明度
saturate():超饱和或去饱和输入的图像
sepia():将图像转为棕褐色
在给元素添加阴影的时候,我们一般采用?box-shadow?属性,通过?box-shadow(x偏移,y偏移,模糊大小,阴影大小,色值,inset)?的语法形式很容易为元素添加阴影效果,但box-shadow也有一个缺点,就是在给透明图片添加阴影效果时,无法穿透元素,只能添加到透明图片元素的盒模型上。
这个时候,filter属性的drop-shadow方法就能很好的解决这个问题,用它添加的阴影可以穿透元素,而不是添加到元素的盒模型边框上。
drop-shadow?添加的阴影除了可以穿透透明元素外,阴影效果和?box-shadow?是相同的,如果浏览器支持硬件加速的话,使用filter添加的阴影效果会更加逼真。
drop-shadow语法如下(它除了不支持设置inset,其他和box-shadow是完全相同的):
如:
下图是分别使用box-shadow和filter:drop-shadow为透明元素添加阴影的对比:
发生重大灾害事故或其他哀悼日时,国企政府网站往往有网页全部置灰的需求。或者很多网页中有鼠标hover悬浮到灰色元素上时变成彩色的样式效果。
此时就可以使用filter属性的grayscale方法实现,它可以调整元素灰度,通过给页面元素设置filter:grayscale(100%)?就可将页面元素置灰。
以下示例中,body标签下有h1和img标签,未添加filter样式前如下所示。
现在我们给body元素添加一个.gray类,<body>?就可实现整个网页置灰效果。
为了兼容IE8等其他低版本浏览器,我们可以加上浏览器前缀和svg滤镜。
在做紧急置灰网页需求时,上线一段时间往往需要撤掉这个功能,我们还可以在首次上线时添加以下类似的方法,来控制置灰效果的自动上下线时间,这样到达预定时间就可自动撤去,不用走两次施工流程。
brightness方法实现元素高亮的效果,可以应用到菜单栏、图片列表hover效果,来强调鼠标当前悬浮或选中的内容。
下面是对一组按钮菜单栏添加brightness和saturate两个方法,通过改变亮度和饱和度来高亮元素。
毛玻璃(Frosted glass)效果,顾名思义就是类似半透明毛玻璃的效果,在iOS系统、Windows 10?等系统UI中有广泛应用,使用毛玻璃效果可以增强视觉体验。
在?《css揭秘》?等著作中也有系统讲解,下面是我对分别使用filter:blur和backdrop-filter:blur两种方法实现这种效果的总结。
有两个含有相同类名glass的div元素,它们分别被添加两个类glass-by-filter和glass-by-backdrop-filter来区分两种方法。
通用样式,设置毛玻璃元素的大小、圆角等基本样式:
filter:blur方法,给元素添加了一个?::before伪类设置blur方法并将其置于底层实现毛玻璃效果。
backdrop-filter:blur直接在元素上添加blur方法实现毛玻璃效果。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h62279.shtml