开发者社区> 技术小牛人> 正文

css3 filter属性 给图片添加毛玻璃模糊效果

简介:
+关注继续查看

记录下项目中关于图片模糊效果的处理,要求:背景图必须通过img标签传入,而且头像要做成圆形的


示例图片:

wKioL1f97R6DJoYPAAG57NLOTDE520.png

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div class="introBox">
    <!--个人头像-->
    <div class="imgShow">
        <img class="imgBground" src="resources/images/1.jpg" alt="">
        <ul class="details">
            <li class="smallImg">
                <img class="roundImg" src="resources/images/1.jpg" alt="">
            </li>
            <li><p class="uname">吕良伟</p></li>
            <li><p class="cellPhone">13218888888</p></li>
        </ul>
    </div>
</div>


CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*背景图模糊效果*/
.imgBground{
    width:100%;
    height:28vh;
    filter: url(blur.svg#blur); /* FireFox, Chrome, Opera */
    -webkit-filter: blur(5px); /* Chrome, Opera */
    -moz-filter: blur(5px);
    -ms-filter: blur(5px);
    filter: blur(5px);
    filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=5, MakeShadow=false); /* IE6~IE9 */
}
.details{position:absoluteleft:0right:0top:8%margin:auto;}/*调整个人信息的位置*/
.smallImg{width:100pxheight:100pxmargin:2% autooverflow:hidden;}
/*把头像处理成圆形*/
.roundImg{display:block;width:100pxheight:100px; -webkit-border-radius:50%; -moz-border-radius:50%; border-radius:50%;}


关于CSS3 filter(滤镜) 属性,手册是这么介绍的

wKiom1f98BfjT3RhAAFUVNdMuf8744.png


亮度Brightness

Brightness滤镜用于控制图片的亮度,参数接受的值为 大于或等于0,0%则输出为纯黑色,100%输出为图像原本的亮度,大于100%的时候则可以提升图片的亮度,比如150%,即将亮度提升1.5倍

HTML:

1
2
3
4
<div id="container">
    <img class="imgA" src="images/1.jpeg" alt="">
    <img class="imgB" src="images/1.jpeg" alt="">
</div>


CSS:

1
2
3
4
5
6
#container{width:600pxheight:800px;}
#container img{width:200px;}
.imgB{
    filter:brightness(150%); /*firefox*/
    -webkit-filter:brightness(150%);/*chrome, safari, opera*/
}


效果图(支持Chrome,Firefox,Opera,Safari,不支持IE任何版本)

wKiom1gUEmiQXo84AAOBjGFfQ-M230.png

对比度Contrast

Contrast滤镜用来控制图片的对比度,像亮度滤镜一样,参数接受的值大于或等于0,该滤镜控制在CSS图像的深色和浅色部分之间的差异。因此,设置0%是灰色,100%是原始图像,大于100%进一步提升图像的对比度

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:contrast(80%);
    -webkit-filter:contrast(80%);
}
.imgB{
    filter:contrast(150%);
    -webkit-filter:contrast(150%);
}

wKiom1gUEhHjm39qAAPtsBXh6v0092.png

灰度Grayscale

Grayscale滤镜用于控制图片的灰度,这个滤镜逐渐将我们的图像中的所有颜色转换成一些灰色的阴影,设置0%没有效果,100%会变成全灰,不允许出现负值

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:grayscale(30%); /*firefox*/
    -webkit-filter:grayscale(30%);/*chrome, safari, opera*/
}
.imgB{
    filter:grayscale(80%); /*firefox*/
    -webkit-filter:grayscale(80%);/*chrome, safari, opera*/
}

wKioL1gUE3XAIOdnAAOm4sofdao051.png


饱和度Saturate

Saturate滤镜控制图像的色彩饱和度,设置0%将彻底从图像中删除所有的颜色,设置100%看起来就像原始图像,而超过100%则将使图像饱和,不允许出现负值

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:saturate(30%); /*firefox*/
    -webkit-filter:saturate(30%);/*chrome, safari, opera*/
}
.imgB{
    filter:saturate(150%); /*firefox*/
    -webkit-filter:saturate(150%);/*chrome, safari, opera*/
}

wKiom1gUFRKB2eCbAAPhOUmTZW4686.png


褐色Sepia

Sepia滤镜用于控制图片的褐色色调,就是说把图片调成复古风格的老照片效果,设置0%为原始图像,设置100%为老照片效果

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:sepia(50%); /*firefox*/
    -webkit-filter:sepia(50%);/*chrome, safari, opera*/
}
.imgB{
    filter:sepia(100%); /*firefox*/
    -webkit-filter:sepia(100%);/*chrome, safari, opera*/
}

wKioL1gUFhHifC3RAAOaIAS8zCc774.png

色相旋转Hue-rotate

Hue-rotate滤镜适用于色相旋转到图像的所有颜色。设置0deg时没有效果,取值没有最大值,取值超过360deg时就相当于一个循环,也就是说取值90deg和450deg的效果是一样的

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:hue-rotate(90deg); /*firefox*/
    -webkit-filter:hue-rotate(90deg);/*chrome, safari, opera*/
}
.imgB{
    filter:hue-rotate(150deg); /*firefox*/
    -webkit-filter:hue-rotate(150deg);/*chrome, safari, opera*/
}

wKioL1gUF2nDfk35AAQdyDvEupw720.png



反色Invert

Invert滤镜反转所有颜色,反转的量取决于设置的值,设置0%的时候没有反转,设置100%的时候则反转所有的颜色

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:invert(60%); /*firefox*/
    -webkit-filter:invert(60%);/*chrome, safari, opera*/
}
.imgB{
    filter:invert(90%); /*firefox*/
    -webkit-filter:invert(90%);/*chrome, safari, opera*/
}

wKiom1gUGCeSZW0cAANEzi8EGxY693.png


模糊Blur

Blur滤镜适用于高斯模糊的图像,把颜色混合在一起,并分布在图像的边缘上。传递给此过滤器的半径参数来确定屏幕上的交融互进多少像素。取值越大,模糊效果越明显,这个滤镜可以接受任何长度值,除了百分比

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:blur(1px); /*firefox*/
    -webkit-filter:blur(1px);/*chrome, safari, opera*/
}
.imgB{
    filter:blur(0.5em); /*firefox*/
    -webkit-filter:blur(0.5em);/*chrome, safari, opera*/
}

wKioL1gUGYqgP5RRAAKmN9x_GkI295.png


透明度Opacity

Opacity滤镜使图像变透明,取值0%时,完全透明;取值100%时,完全不透明。这个滤镜跟已知的opacity属性相似,唯一的区别就是性能,opacity滤镜属性在支持硬件加速的浏览器上性能会更好

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:opacity(25%); /*firefox*/
    -webkit-filter:opacity(25%);/*chrome, safari, opera*/
}
.imgB{
    filter:opacity(75%); /*firefox*/
    -webkit-filter:opacity(75%);/*chrome, safari, opera*/
}

wKioL1gUGnrCwfw7AANR5b6ap6c885.png


阴影Drop Shadow

Drop Shadow滤镜增加了一个阴影效果,此属性需要X和Y的偏移,以及隐隐的颜色,也可以设置一个模糊半径

CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter:drop-shadow(5px 5px 10px #666); /*firefox*/
    -webkit-filter:drop-shadow(5px 5px 10px #666);/*chrome, safari, opera*/
}
.imgB{
    filter:drop-shadow(10px 10px 10px #eee); /*firefox*/
    -webkit-filter:drop-shadow(10px 10px 10px #eee);/*chrome, safari, opera*/
}

wKioL1gUG7fAqJSkAAKaKrc6zD8065.png


URL()

虽然我们讨论过的所有的滤镜非常有用,他们其实是通用的滤镜,但是你的项目可能需要更多的效果,如果上面滤镜没有能满足你的要求的,你可以创建自己的SVG滤镜然后使用其id通过url()引用。

HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div id="container">
    <img class="imgA" src="images/1.jpeg" alt="">
    <img class="imgB" src="images/1.jpeg" alt="">
</div>
 
<svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">
    <filter id="greenish">
        <feComponentTransfer>
            <feFuncR type="linear" slope="2" intercept="-0.5"/>
            <feFuncG type="linear" slope="2" intercept="-0.1"/>
            <feFuncB type="linear" slope="2" intercept="-0.25"/>
        </feComponentTransfer>
    </filter>
    <filter id="bluish">
        <feComponentTransfer>
            <feFuncR type="linear" slope="2" intercept="-0.5"/>
            <feFuncG type="linear" slope="2" intercept="-0.1"/>
            <feFuncB type="linear" slope="2" intercept="0"/>
        </feComponentTransfer>
    </filter>
</svg>


CSS:

1
2
3
4
5
6
7
8
.imgA{
    filter: url('#greenish');
    -webkit-filter: url('#greenish');
}
.imgB{
    filter:url('#bluish');
    -webkit-filter: url('#bluish');
}

wKioL1gUHUKjyTNjAAOeaZMytlw067.png


组合滤镜和动画滤镜(Combining and Animating Filters)

您也可以组合多个滤镜来获得各种效果。在大多数情况下,滤镜的顺序并没有多大关系。但是如果在灰度滤镜后再加上一个褐色滤镜,还是会显示一个灰度图像。

CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
.imgB{
    -webkit-animation: haunted 3s infinite;
    animation: haunted 3s infinite;
}
 
@keyframes haunted {
    0% {
        -webkit-filter: brightness(20%);
        filter: brightness(20%);
    }
    48% {
        -webkit-filter: brightness(20%);
        filter: brightness(20%);
    }
    50% {
        -webkit-filter: sepia(1) contrast(2) brightness(200%);
        filter: sepia(1) contrast(2) brightness(200%);
    }
    60% {
        -webkit-filter: sepia(1) contrast(2) brightness(200%);
        filter: sepia(1) contrast(2) brightness(200%);
    }
    62% {
        -webkit-filter: brightness(20%);
        filter: brightness(20%);
    }
    96% {
        -webkit-filter: brightness(20%);
        filter: brightness(20%);
    }
    96% {
        -webkit-filter: brightness(400%);
        filter: brightness(400%);
    }
}

wKioL1gUIBOi6m-6AASKiZQEKm8951.png


(有动态效果,但是截图的缘故,只能看静态的了)


更多介绍,可以查看菜鸟教程:http://www.runoob.com/cssref/css3-pr-filter.html

http://www.w3cways.com/2046.html

本文转自   frwupeng517   51CTO博客,原文链接:http://blog.51cto.com/dapengtalk/1861148

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CSS图片背景样式(下)
CSS图片背景样式(下)
29 0
CSS图片背景样式(上)
CSS图片背景样式(上)
26 0
举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效
喜欢看电影的朋友肯定会注意到一个有趣的细节,就是电影出品方一定会在片头的Logo环节做一个小特效:暗影流动之间光泽一闪而过,这样做不仅可以提高Logo的辨识度,还可以提升质感,一举两得。参照华纳兄弟影业(Warner Bros. Pictures)的例子
43 0
利用JavaScript的控制图片的CSS位置实现轮播图功能
利用JavaScript的控制图片的CSS位置实现轮播图功能 上篇博客我们说到了如何给轮播图添加定时器效果,当然前面的两个轮播图功能实现都是通过改变图片的路径(图片名称取巧)实现的,有一定的局限性。今天说一说怎样通过改变位置实现轮播功能。效果如图: 在这里插入图片描述 HTML代码: <div class="box" id="box"> <ul class="min_box" id="banner"> <li class="banner"></li> <li class="banner"></li>
43 0
【笔记】纯css实现列表水平滑动(图片或文字内容不限)
纯css实现列表水平滑动(图片或文字内容不限)
55 0
「趣学前端」filter滤镜,CSS的PS特技
CSS之filter赏析,来show一波CSS的PS特技。
59 0
从微信聊天框开始学习CSS属性filter
从微信聊天框开始学习CSS属性filter
188 0
css3 filter滤镜属性使用
最近在修改内网门户的时候,恰好遇到了需要使用滤镜的地方;刚开始用的是两张图片;鼠标滑过背景变成渐变;图标切换;但是后台配置了图标后;导致鼠标滑过图标不能正常切换;于是就想到了滤镜的效果来处理。所以顺便学习了一下常用的滤镜效果。
138 0
CSS filter 生成不规则边框.md
CSS filter 生成不规则边框.md
187 0
+关注
技术小牛人
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
零基础CSS入门教程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载