几个常见的CSS滤镜效果
今天学习几个CSS的滤镜效果,这里暂时只用CSS3的filter来实现,至于利用SVG和Canvas的坑以后再填
灰度图
在一些哀悼日,网页可能要设为全灰色。CSS3中用greyscale来实现 取值范围为0-1或0-100%;0表示无效果,1或100%表示最大效果
先是HTML代码:
<img src="images/xi.jpg">
<img class="filter" src="images/xi.jpg">
然后是CSS的测试代码:
<style type="text/css">
img{
width: 300px;
height: 400x;
}
.filter{
-webkit-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray; /*IE*/
}
</style>

高斯模糊
高斯模糊也就是我没带眼镜时的效果,用blur实现 取值范围为0-N px,其中0为无效果
测试代码:
.filter{
-webkit-filter: blur(2px);
-ms-filter: blur(2px);
-moz-filter: blur(2px);
-o-filter: blur(2px);
filter: blur(2px);
}

Speia滤镜
Speia滤镜是对图片或元素整体进行棕褐色处理,就是老照片那种效果 取值范围为0-1或0-100%;0表示无效果,1或100%表示最大效果
测试代码:
.filter{
-webkit-filter: sepia(1);
-ms-filter: sepia(1);
-moz-filter: sepia(1);
-o-filter: sepia(1);
filter: sepia(1);
}

饱和度滤镜
看到饱和度让我想起了冷屏和暖屏之间的战争以及到底用不用三星A屏 可以利用saturate实现 取值范围>=0的数字或百分数,1为无效果,0为灰度图
测试代码:
.filter{
-webkit-filter: saturate(2);
-ms-filter: saturate(2);
-moz-filter: saturate(2);
-o-filter: saturate(2);
filter: saturate(2);
}

反色滤镜
反色滤镜使用invert来实现 就是婴儿照那种胶片的感觉(好像把年龄暴漏了) 取值范围0~1或0~100%,0为无效果,1或100%表示最大效果
测试代码:
.filter{
-webkit-filter: invert(1);
-ms-filter: invert(1);
-moz-filter: invert(1);
-o-filter: invert(1);
filter: invert(1);
}

对比度滤镜
对比度和亮度一般在显示器都可以调试,CSS3中对比度使用contrast 取值范围>=0的数字或百分数,1为无效果
测试代码:
.filter{
-webkit-filter: contrast(2);
-ms-filter: contrast(2);
-moz-filter: contrast(2);
-o-filter: contrast(2);
filter: contrast(2);
}

亮度滤镜
亮度滤镜使用brightness 取值范围>=0的数字或百分数,1为无效果
测试代码:
.filter{
-webkit-filter: brightness(2);
-ms-filter: brightness(2);
-moz-filter: brightness(2);
-o-filter: brightness(2);
filter: brightness(2);
}

阴影滤镜
阴影滤镜其实在表单写button的时候用过,可以增加元素的立体感 使用drop-shadow来实现
格式:
filer: drop-shadow(x-offset y-offset 阴影模糊半径 阴影颜色)
x-offset和y-offset为阴影的相对于元素左上角的位移距离;
测试代码:
.filter{
-webkit-filter: drop-shadow(5px 5px 3px #4D4DFF);
-ms-filter: drop-shadow(5px 5px 3px #4D4DFF);
-moz-filter: drop-shadow(5px 5px 3px #4D4DFF);
-o-filter: drop-shadow(5px 5px 3px #4D4DFF);
filter: drop-shadow(5px 5px 3px #4D4DFF);
}
效果美美的:

注意:阴影的外观受border-radius样式的影响
比如:
.filter{
-webkit-filter: drop-shadow(5px 5px 3px #4D4DFF);
-ms-filter: drop-shadow(5px 5px 3px #4D4DFF);
-moz-filter: drop-shadow(5px 5px 3px #4D4DFF);
-o-filter: drop-shadow(5px 5px 3px #4D4DFF);
filter: drop-shadow(5px 5px 3px #4D4DFF);
border-radius: 20px;
}
是不是更美了

当然也可以结合border来进行更好的美化效果。这里就不贴代码和效果了