您现在的位置是:网站首页> 编程资料编程资料
css中filter属性和backdrop-filter的应用与区别详解css3 filter属性的使用简介CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用使用css的filter写鼠标滑过效果的实现示例CSS filter 有什么神奇用途
2021-09-03
989人已围观
简介 这篇文章主要介绍了css中filter属性和backdrop-filter的应用与区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
filter和backdrop-filter具有一定区别:
- Filter不仅仅作用于当前元素,后代元素也会继承这个属性,作用于一个空背景元素则没有效果。
- backdrop-filter 是使透过该层的底部元素模糊化
- backdrop-filter属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。 因为它适用于元素 背后 的所有元素,为了看到效果,必须使元素或其背景至少部分透明。
- backdrop-filter目前兼容性不佳,尤其是安卓移动端。
filter属性
我们先来说说filter属性,css3中的filter属性简单易用且强大,这些效果作用在图片上可以实现一些特有的特效。而且目前主流浏览器都已经支持了这个属性。

从上图来看,大部分浏览器的兼容性都是不错的。
我们还是直接用代码来看。
body { display: flex; width: 100%; height: 100vh; align-items: center; justify-content: center; } .img { width: 500px; height: 500px; }我们定义一张照片在网页中央,先不做任何处理。

这是原图呈现的效果。
接下来我们看filter的几个比较重要的属性。
opacity
opacity 代表透明度,值为0-1之间的小数,值越大透明度越低。
.filter{ filter: opacity(.3); }如下图展示:

blur
blur可以设置图片使用高斯模糊效果,单位值是px。所谓高斯模糊,就是指一个图像与二维高斯分布的概率密度函数做卷积。
简单点说:高斯模糊常常用来模拟人眼中的物体变远、变快的效果。在照片处理中,我们常常将背景施以高斯模糊,使得背景仿佛变远了,从而突出前景的人物或物体。一些所谓“先拍照,后对焦”的技术利用的也是高斯模糊这个效果。若想弄出视点飞快移动的效果,也可以对背景使用高斯模糊。
.filter { filter: blur(2px); }
invert
invert 可以设定反色, 值为0-1之间的小数。
.filter { filter: invert(1); }
saturate
saturate可以设定照片饱和度,取值范围为数字即可,默认值1,即100%。
.filter { filter: saturate(5); }比如这里我设置饱和度是500%,如下图效果:

grayscale
grayscale代表灰度,取值在0-1之间,。
.filter { filter: grayscale(1); }下图是grayscale为1,即灰度是100%时候的效果。

另外,如果使用该效果参数里没值的话,也会默认以1,即100%为值取值,即如下面设置。
.filter { filter: grayscale(); }sepia
sepia代表的是照片褐色,类似于大部分美图软件里的怀旧功能的那种效果,取值也是0-1,和grayscale一样。
.filter { filter: sepia(1); }hue-rotate
hue-rotate用来改变图片的色相,默认值为0deg,取值是角度(angle)。
.filter { filter: hue-rotate(90deg); }
hue-rotate一般配合css动画使用,可以呈现不一样效果。比如电池充电的动画,随着高度在纵坐标上移,hue-rotate的值逐渐改变,这里因为无法上传git图片,只能看下静态图片:


brightness
brightness可以改变图片的亮度,默认值为100%,即1。
.filter { filter: brightness(2); }
contrast
contrast代表对比度,这个属性取值和饱和度saturate类似,取值也是数字。
.filter { filter: contrast(2.5); }这里我们演示对比度是250%时候的效果,如下图:

drop-shadow
drop-shadow这个属性类似于box-shadow,给图片加阴影。
.filter { filter: drop-shadow(20px 20px 10px 20px #000) /**水平阴影位置,垂直阴影位置,模糊距离,阴影颜色**/ }
backdrop-filter属性
我们回过头来在看backdrop-filter属性以下几点特点
- backdrop-filter 是使透过该层的底部元素模糊化
- backdrop-filter属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。 因为它适用于元素 背后 的所有元素,为了看到效果,必须使元素或其背景至少部分透明。
- backdrop-filter目前兼容性不佳,尤其是安卓移动端。
上面这些只看文字不好理解,我直接上代码:
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Possimus voluptatem velit quod placeat? Cupiditate, corporis, et tempore laudantium consequatur labore distinctio nisi inventore totam vero cum est saepe quos ad
我们定义了一个container元素div,子元素有content和filter两个div元素。
body { margin: 0; padding: 0; } .container { width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: aqua; } .content { position: absolute; bottom: 40%; width: 300px; height: 300px; background-color: blueviolet; } .filter { position: absolute; bottom: 0; width: 100%; height: 50%; font-size: 32px; z-index: 20; }以上元素,我们可以得到如下布局:

这时候,我们将filter元素改为
.filter { position: absolute; bottom: 0; width: 100%; height: 50%; filter: blur(5px); z-index: 20; font-size: 32px; }从代码看,我们添加了filter: blur(5px)。如下图展示效果,我们发现filter元素div和其中的文字内容,都被模糊化了。

但如果如下修改样式
.filter { position: absolute; bottom: 0; width: 100%; height: 50%; backdrop-filter: blur(5px); z-index: 20; font-size: 32px; }使用backdrop-filter: blur(5px)元素,则得到如下图排版

我们发现,只有filter元素DIV被模糊化,而子内容文字并没有受到任何影响。
.filter { position: absolute; bottom: 0; width: 100%; height: 50%; background-color: chocolate; backdrop-filter: blur(5px); z-index: 20; font-size: 32px; }但是,如果按照以上代码,给filter元素设置了背景色background-color: chocolate,这时候,就几乎看不到模糊化的效果。

或者,我们把content元素DIV背景色去除,
.content { position: absolute; bottom: 40%; width: 300px; height: 300px; }
这就是为什么说,为了看到效果,必须使元素或其背景至少部分透明。
我们发现,backdrop-filter属性还只能在部分最新版浏览器上有效果,所以目前来看,此属性的兼容性较差。

到此这篇关于css中filter属性和backdrop-filter的应用与区别详解的文章就介绍到这了,更多相关css filter和backdrop-filter内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- Css3实现无缝滚动防抖纯css3实现横向无限滚动的示例代码CSS3制作圆形滚动进度条动画的示例css实现隐藏滚动条并可以滚动内容的实例代码CSS3实现3D小球滚动撞击遮挡板特效源码css文字阴影渐渐模糊效果的实现css3悬停按钮-CSS3鼠标悬停按钮阴影缩放特效代码使用纯 CSS 实现滚动阴影效果
- CSS 水平居中并限定最大的宽度实现使用CSS实现盒子水平垂直居中的方法(8种)CSS实现子元素div水平垂直居中的示例CSS中的translate(-50%,-50%)实现水平垂直居中效果css3 flex实现div内容水平垂直居中的几种方法CSS3 不定高宽垂直水平居中的几种方式CSS3实现水平居中、垂直居中、水平垂直居中的实例代码手把手教你CSS水平、垂直居中的10种方式(小结)web前端之css水平居中代码解析
- CSS将img图片填满父容器div并自适应容器大小css display table 自适应高度、宽度问题的解决详解CSS多种三列自适应布局实现CSS实现背景图片屏幕自适应的实现css3实现自适应浏览器图片布局特效CSS实现表格首行首列固定和自适应窗口的实例代码css实现六种自适应两栏布局方式css实现两栏布局,左侧固定宽,右侧自适应的多种方法
- css3 transform过渡抖动问题解决css3动画效果抖动解决方法CSS 控制Html页面高度导致抖动问题的原因CSS3新浪微博模板商店鼠标悬停图片抖动特效css3让div随鼠标移动而抖动起来CSS 控制因Html页面高度导致抖动的问题解决方法CSS3实现红包抖动效果
- Chrome的最小字体12px限制最终解决办法Win7下Chrome字体渲染颜色太淡颜色不够黑的解决方法解决中文版Chrome下网页不能显示小于12px字体关于Chrome浏览器字体显示的太小不一的bug处理
- CSS3 对过渡(transition)进行调速以及延时用css3实现转换过渡和动画效果CSS3实现类似翻书效果的过渡动画的示例代码css3动画过渡实现鼠标跟随导航效果CSS3实现伪类hover离开时平滑过渡效果示例css3过渡_动力节点Java学院整理详解Css3新特性应用之过渡与动画CSS3中的元素过渡属性transition示例详解CSS3过渡transition效果实例介绍
- css实现文字在背景图片之上CSS实现背景图片屏幕自适应的实现一篇文章带你学习CSS3图片边框CSS世界--代码实践之图片alt信息呈现
- css3 利用transform打造走动的2D时钟纯CSS3实现运行时钟的示例代码css3一个简易的 LED 数字时钟实现方法利用CSS3 动画 绘画 圆形动态时钟CSS实现漂亮的时钟动画效果的实例代码
- 详解CSS3中常用的样式【基本文本和字体样式】HTML外部样式表如何引入CSS样式编程式处理Css样式的示例代码CSS 选择所有子元素添加样式的方法CSS常用样式之绘制双箭头的示例代码详解中文字体在CSS样式中font-family对应的英文名称CSS实现鼠标悬停改变其他标签样式的示例代码解决ElementUI自定义CSS样式不生效的问题
- 编程式处理Css样式的示例代码HTML外部样式表如何引入CSS样式详解CSS3中常用的样式【基本文本和字体样式】CSS 选择所有子元素添加样式的方法CSS常用样式之绘制双箭头的示例代码详解中文字体在CSS样式中font-family对应的英文名称CSS实现鼠标悬停改变其他标签样式的示例代码解决ElementUI自定义CSS样式不生效的问题

