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 : 28 vh;
     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 : absolute left : 0 right : 0 top : 8% margin : auto ;} /*调整个人信息的位置*/
.smallImg{ width : 100px height : 100px margin : 2%  auto overflow : hidden ;}
/*把头像处理成圆形*/
.roundImg{ display : block ; width : 100px height : 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 : 600px height : 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( 90 deg);  /*firefox*/
     -webkit-filter:hue-rotate( 90 deg); /*chrome, safari, opera*/
}
.imgB{
     filter:hue-rotate( 150 deg);  /*firefox*/
     -webkit-filter:hue-rotate( 150 deg); /*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  3 s infinite;
     animation: haunted  3 s 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

相关文章
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
343 1
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
327 0
|
6月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
214 1
|
9月前
|
前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
436 69
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
618 1
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
230 0
|
前端开发
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
242 2
|
编解码 前端开发 UED
探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用
本文深入探讨了CSS媒体查询在移动端开发中的应用,介绍了媒体查询的基本概念、常见条件及其在响应式布局、导航菜单、图片优化和字体调整等方面的具体应用。通过实际案例分析和注意事项的讨论,旨在帮助开发者更好地理解和运用媒体查询,提升移动端用户体验。
344 4
|
前端开发
CSS 浮动属性讲解和使用
本文介绍了CSS中的浮动(float)属性,包括其基本功能、属性选项及其在网页布局中的应用。浮动使元素脱离文档流,向左或右排列,周围元素随之调整。文章还详细讲解了清除浮动的方法,如使用clear属性、设置父元素高度、利用overflow属性、伪元素等,以解决因浮动导致的布局问题。最后,强调了浮动在创建复杂布局时的作用,并预告后续内容。
493 2

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    435
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    343
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    327
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    214
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    438
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    618
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    872
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    230
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    716
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    406
  • 下一篇
    开通oss服务