CSS躬行记(6)——滤镜

简介:  滤镜(filter)可改造元素的视觉呈现,CSS内置的滤镜有10种,通过SVG文件还能自定义滤镜。

一、调色滤镜


  调色滤镜可控制元素的模糊、颜色、亮度等变化,并且多个滤镜可组合在一起使用。这些滤镜大部分既能接收百分数,也能接收数值。当传入的值大于上限值时,会以上限值来处理。

1)模糊

  blur()滤镜会对元素进行高斯模糊的处理,它能接收一个模糊半径的长度值。注意,不能向其传递负数。在下图中,右侧是调用了blur()滤镜后的效果。

div {
  filter: blur(5px);
}


78.png


2)透明

  opacity()滤镜可控制元素的透明度,其默认值为1或100%(表示不透明),最小值为0。opacity()滤镜与opacity属性类似,但两者不是互斥关系,可同时应用于同一个元素,不过opacity属性会在执行完所有的滤镜后再起作用。在下图中,右侧是调用了opacity()滤镜后的效果。

div {
  filter: opacity(.5);
}


79.png


3)阴影

  drop-shadow()滤镜可为元素的透明部分提供阴影,其取值与text-shadow属性类似,也是X轴与Y轴的偏移、模糊半径以及颜色。下图使用了一张透明的五角星图,右侧调用了drop-shadow()滤镜,阴影会沿着透明轮廓渲染。

div {
  filter: drop-shadow(5px 5px 5px #F60);
}


80.png


4)灰度

  grayscale()滤镜能转换元素的灰度,当值为1或100%时,元素会转换成完全的灰度。在下图中,右侧是调用了grayscale()滤镜后的效果。


div {
  filter: grayscale(100%);
}


81.png


5)褐色

  sepia()滤镜能指定元素褐色的比例,即用褐色为元素上色。当值为1或100%时,元素会转换成完全的深褐色。在下图中,右侧是调用了sepia()滤镜后的效果。

div {
  filter: sepia(100%);
}


82.png


6)反转

  invert()滤镜能将元素的颜色反转处理,即用255或100%减去颜色的R、G和B通道的值。在下图中,右侧是调用了invert()滤镜后的效果。

div {
  filter: invert(100%);
}


83.png


7)色相旋转

  hue-rotate()滤镜能接收一个角度值,参照标准色轮(如下图)旋转元素的整体色相。

84.png

  在下图中,右侧是调用了hue-rotate()滤镜旋转90°后的效果。

div {
  filter: hue-rotate(90deg);
}


85.png8)亮度

  brightness()滤镜能调整元素的明暗程度,值越小,元素越暗。在下图中,右侧是调用了brightness()滤镜后的效果。

div {
  filter: brightness(50%);
}


86.png


9)对比度

  contrast()滤镜能调整元素颜色的对比度,对比度越低,颜色越接近。在下图中,右侧是调用了contrast()滤镜后的效果。

div {
  filter: contrast(30%);
}


87.png


10)饱和度

  saturate()滤镜能调整元素颜色的饱和度,饱和度越低,颜色越暗。在下图中,右侧是调用了saturate()滤镜后的效果。

div {
  filter: saturate(50%);
}


88.png


11)组合

  在声明filter属性时,可定义多个滤镜函数,用空格分隔,如下所示。在下图中,右侧是调用了多个滤镜后的效果。

div {
  filter: drop-shadow(5px 5px 5px #F60) sepia(100%) saturate(50%);
}


89.png


二、SVG滤镜

  所有的CSS滤镜都能通过SVG滤镜实现。以blur(5px)为例,首先用一个名为filter.svg的文件描绘模糊的效果,其内容如下所示。

<svg height="0" xmlns="http://www.w3.org/2000/svg">
  <filter id="blur" x="-5%" y="-5%" width="110%" height="110%">
    <feGaussianBlur in="SourceGraphic" stdDeviation="5"/>
  </filter>
</svg>

  然后通过url()函数引用SVG文件中的滤镜,注意,井号后面跟着的是filter元素的id属性值,效果如下图所示。

div {
  filter: url(./filter.svg#blur);
}


90.png

  通过SVG文件的方式就能创造出各种功能的滤镜,以适应更多的复杂场景。

相关文章
|
3月前
|
前端开发
CSS常用滤镜属性讲解
本文介绍了CSS滤镜的几种常用效果,包括高斯模糊、亮度和对比度调整、灰度化、图像反转、透明度调整、饱和度调整及复古滤镜等。例如,使用`blur(10px)`可使图像产生模糊效果,包裹层设置`overflow: hidden`可避免边缘模糊;`brightness(150%)`和`contrast(150%)`分别增强图像亮度和对比度;`grayscale(1)`将图像转为灰度;`invert(1)`实现图像颜色完全反转;`opacity(0.5)`调整图像半透明;`saturate(350%)`增加饱和度;`sepia(100%)`营造复古深褐色调;`hue-rotate(180deg)`改变
40 4
CSS常用滤镜属性讲解
|
3月前
|
前端开发
CSS常用滤镜属性讲解
CSS常用滤镜属性讲解
34 0
|
6月前
|
前端开发 算法
前端 CSS 经典:filter 滤镜
前端 CSS 经典:filter 滤镜
49 0
|
6月前
|
前端开发
CSS圆角大杀器,使用滤镜构建圆角及波浪效果
CSS圆角大杀器,使用滤镜构建圆角及波浪效果
65 0
|
前端开发
特殊日期将网站变成灰色-css滤镜(整理)
特殊日期将网站变成灰色-css滤镜(整理)
|
前端开发
「趣学前端」filter滤镜,CSS的PS特技
CSS之filter赏析,来show一波CSS的PS特技。
153 1
|
Web App开发 存储 缓存
探究 CSS 混合模式\滤镜导致 CSS 3D 失效问题
探究 CSS 混合模式\滤镜导致 CSS 3D 失效问题
260 0
探究 CSS 混合模式\滤镜导致 CSS 3D 失效问题
|
Web App开发 前端开发 iOS开发
css3 filter滤镜属性使用
最近在修改内网门户的时候,恰好遇到了需要使用滤镜的地方;刚开始用的是两张图片;鼠标滑过背景变成渐变;图标切换;但是后台配置了图标后;导致鼠标滑过图标不能正常切换;于是就想到了滤镜的效果来处理。所以顺便学习了一下常用的滤镜效果。
349 0
|
前端开发 UED
不得不收藏的——IE中CSS-filter滤镜小知识大全
前段时间在做一个专题的时候用到了opacity不透明度属性,因为设计图上是半透明背景,白色文字
468 0
不得不收藏的——IE中CSS-filter滤镜小知识大全
|
移动开发 HTML5