CSS3 filter滤镜详解
文章目录
因为filter是css3新属性,所以我们在介绍它之前先简单看一下它的兼容性(图片来源于菜鸟教程):
那么我们开始介绍一下filter的几个属性:
1、filter:blur(px) 高斯模糊
这个属性很简单是给图像设置高斯模糊,括号中数值越大那么图像越模糊。
写个例子:
<style type="text/css">
img{
height: 100px;
width: 200px;
}
div{
filter: blur(3px);
}
</style>
<body>
<div>
<img src="1.jpg" >
<span>
这是一张图片
<p>p标签</p>
</span>
</div>
</body>
就如效果图上所显示的,这个属性会影响到这个标签下面所有的子代元素。
2、filter:brightness(%) 亮度调节
说简单点这个属性用于调节图像亮度,值位于0和1之间,默认是1(正常亮度),数值越小亮度越低,到达0时为黑色。
例:
div{
color: red;
filter: brightness(50%);
}
效果图如下:
html和上面相同,这里不做复制,看效果图就很容易理解,图像很明显变暗,字体颜色设置的红色,这里变成黑红,说明对子代同样有效。
3、filter:contrast(%) 对比度调节
这个属性调节的是图像当中的对比度,取值同brightness,为了我们看的更清晰,我换了一张图片,请看案例:
<style type="text/css">
img{
height: 100px;
width: 200px;
}
img:nth-of-type(2){
filter: contrast(50%) ;
}
div{
color: red;
filter: brightness(50%);
}
</style>
<body>
<p>原图</p>
<img src="2.jpg" />
<p>contrast(50%)</p>
<img src="2.jpg" >
<div>
<p>brightness(50%)</p>
<img src="2.jpg" >
<span>
这是一张图片
<p>p标签</p>
</span>
</div>
</body>
效果图如下:
4、 filter:drop-shadow(offset-x offset-y blur spread color) 阴影设置
这个属性可设置图像阴影,类似于box-shadow,所以她的五个参数分别是,x偏移量、y偏移量、模糊程度(值越小图像越清晰)、阴影大小、颜色。注意: Webkit, 以及一些其他浏览器 不支持第四个长度,如果加了也不会渲染。
注意如果加上了这个属性值,那么drop-shadow不能够使用
例:
div{
color: red;
filter: drop-shadow(10px 10px 5px red);
}
效果图:
通过filter滤镜,一些浏览器为了更好的性能会提供硬件加速。
5、filter:grayscale(%) 灰度
使图像变成灰度样式,值同样是0-1;
例:
div{
color: red;
filter: grayscale(80%);
}
效果图:
6、filter:hue-rotate(deg) 应用色旋转
这个属性需要大家去做一下案例才比较好理解,给图像应用色相旋转,相当于是一些应用色来相互转换。默认值为0deg。
例:
div{
color: red;
filter: hue-rotate(180deg);
}
效果图:
可比较上面的原图。
7、filter:invert(%) 反转图像输入
反转输入图像.数值为超过50%之前,慢慢递增图像逐渐变得模糊,超过50%以后,数值满满递增,图像开始反向清晰。
例:
div{
color: red;
filter: invert(100%);
}
效果图:
8、filter:opacity(%) 透明度
这个属性大家很熟悉是关于透明度的,和直接使用opacity(%)不同的是,使用filter后 一些浏览器为了提升性能会提供硬件加速。
例:
div{
color: red;
filter: opacity(50%)
}
效果图:
9、filter:saturate(%) 饱和度
转化图像的饱和度,数值为0-100%,由于本人对这些东西不是特别敏感,所以大家自行理解。(原图为饱和度100%,饱和度逐渐降低,图像变得越来越不清晰)
例:
<style type="text/css">
img{
height: 100px;
width: 200px;
}
div{
color: red;
filter: saturate(50%);
}
</style>
<body>
<p>原图</p>
<img src="2.jpg" >
<div>
<p>saturate(50%)</p>
<img src="2.jpg" >
<span>
这是一张图片
<p>p标签</p>
</span>
</div>
</body>
效果图:
10、filter:sepia(%) 褐色转化
将图像转换为深褐色。其实类似于灰度,只是转变的颜色不同而已,默认值为0.
例:
div{
color: red;
filter: sepia(50%);
}
效果图: