CSS过滤器

CSS过滤器(CSS filters)最初是为了向SVG矢量图提供不同的图片效果。现在,CSS filters 不在局限于在SVG中使用,也可以在图片、文字和其它元素上使用。
CSS过滤器效果并不难理解。就像photoshop里每一个图层可以使用不同的过滤效果:正片叠加、滤色、叠加等等。CSS过滤器实现的功能与之类似,它能将图片渲染为一种特殊的效果。
CSS过滤器对页面性能是有影响的,不可以滥用。如果你整个页面很多地方都使用了CSS过滤器来渲染,那么 你的页面将会加载得十分慢。

CSS过滤器的语法非常简单:filter:属性名称(取值)。属性的取值决定该种过滤此效果的深度。例如下面grayscale属性分别取值为100%、50%和10%。

  1. img { -webkit-filter: grayscale(100%); filter: grayscale(100%);}
  2. img { -webkit-filter: grayscale(50%); filter: grayscale(50%);}
  3. img { -webkit-filter: grayscale(10%); filter: grayscale(10%);}

上面的语句得到的效果如下:

CSS Filter:filter: grayscale(100%);

CSS Filter:filter: grayscale(50%);

CSS Filter:filter: grayscale(10%);

上面每一个百分比数值对应一种效果,它的意思是:这张图片需要多少的灰度值。如果你需要将图片转换为黑白色,使用的值是100%。

你也可以同时为一张图片应用多个过滤器,它们会按层级的顺序被执行。例如下面的例子,图片先被转换为100%的黑白色,然后透明度降低到50%。如果你使用了很多的过滤器如:饱和度、色相反转等,那么它们的书写顺序是非常重要的,这会直接影响最终得到的效果。

  1. img {
  2. -webkit-filter: grayscale(100%) opacity(50%);
  3. filter: grayscale(100%) opacity(50%);
  4. }

CSS过滤器介绍

GRAYSCALE

Grayscale是灰度滤镜,前面已经做了介绍:

  1. img { -webkit-filter: grayscale(100%); filter: grayscale(100%);}

SEPIA

Sepia是复古风格滤镜。和Grayscale滤镜一样,它的取值可以从0%到100%。

  1. img { -webkit-filter: sepia(100%); filter: sepia(100%);}

SATURATION

Saturation是饱和度滤镜。它能将图片的颜色变得更浓烈。饱和度滤镜的最大取值不是100%,你可以指定一个很大的值,如1000,使图片的视觉效果变得非常夸张。

  1. img { -webkit-filter: saturate(1000%); filter: saturate(1000%);}

BLUR

Blur是模糊滤镜。它的效果和在photoshop中对图片使用高斯模糊的效果是一样的。你可以设置一个一像素为单位的值,这个值表示模糊的大小。像素值越高,图片就越模糊。

  1. img { -webkit-filter: blur(5px); filter: blur(5px);}

HUE-ROTATE

Hue-rotate是色相反转滤镜。这个滤镜和前面的滤镜相比有些难理解:它使用角度值来转换元素的颜色。这有一点像HSL颜色d的色环,从0度开始,旋转一周是360度。你所要做的就是选择色环上的某个点(某个角度)来作为色相反转的值。

  1. img { -webkit-filter: hue-rotate(45deg); filter: hue-rotate(45deg);}
  2. img { -webkit-filter: hue-rotate(90deg); filter: hue-rotate(90deg);}
  3. img { -webkit-filter: hue-rotate(180deg); filter: hue-rotate(180deg);}

CSS hue-rotate Filter: hue-rotate(45deg);

CSS hue-rotate Filter: hue-rotate(90deg);

CSS hue-rotate Filter: hue-rotate(180deg);

INVERT

Invert是颜色反转滤镜。颜色反转滤镜可以将黑色转换为白色,红色转换为绿色等等。它有一点像色相反转滤镜,但是它的取值基于百分比,0%表示颜色不改变,100%表示颜色完全反转。

  1. img { -webkit-filter: invert(100%); filter: invert(100%); }

CONTRAST

Contrast是对比度滤镜。如果一张图片没有色彩对比度,它通常是一张灰度很深的图片。对比度滤镜取值100%时不会改变图片,这是图片的默认状态。如果你不想使用对比度效果,设置为0%。如果你想要一张图片有很大的对比度,或者想是图片中的元素都变成纯色,可以设置一个很大的百分比值,如2500%,当然这是一个非常夸张的值。

  1. img { -webkit-filter: contrast(25%); filter: contrast(25%);}
  2. img { -webkit-filter: contrast(2500%); filter: contrast(2500%);}

CSS contrast Filter: contrast(25%);

CSS contrast Filter: contrast(2500%);

BRIGHTNESS

Brightness是明亮度滤镜。正如它的名字,明亮度滤镜用于改变图片的明亮度。当它取值为100%的时候,图片不被改变,这和对比度滤镜是一样的。你可以增加百分比来使图片变亮,或降低百分比使图片变暗。

  1. img { -webkit-filter: brightness(50%); filter: brightness(50%);}
  2. img { -webkit-filter: brightness(150%); filter: brightness(150%);}

CSS brightness Filter: brightness(50%);

CSS brightness Filter: brightness(150%);

DROP SHADOW

Drop Shadow是阴影滤镜。你也许会问:盒子阴影和文字阴影不是有专门的CSS属性吗?为什么我们还要使用这个阴影滤镜。没错!box-shadow和text-shadow属性可以很好的工作在规则的容器和文字上,但是对于不规则的形状,它们就有些无能为力了。例如一张透明的PNG图片或一个五角星形状。Drop Shadow阴影滤镜会制作一个图形的副本,然后使用你设定的值来进行位移,并渲染为你设定的颜色。如下面的例子所示,第一个值是X方向上的位移,第二个值是Y轴方向上的位移,第三个值是模糊的大小,第四个值是模糊的颜色。

  1. img {
  2. -webkit-filter: drop-shadow(5px 5px 5px red);
  3. filter: drop-shadow(5px 5px 5px red);
  4. }

时间: 2024-10-13 12:17:02

CSS过滤器的相关文章

html file 表单样式(css过滤器实现)

... <input type='text' name='textfield' id='textfield' class='txt' /> <input type='button' class='btn' value='浏览...' /> <input type="file" name="fileField" class="file" id="fileField" size="28&qu

CSS 过滤器 兼容ie,火狐和谷歌

这篇汇总主要是提供一些CSS不透明的详细介绍,代码示例和解释,以实现这项有用的CSS技术在您的项目中兼容所有浏览器. 关于CSS 透明度,有一点需要注意的是,它虽然使用了很多年,但它一直以来都不是一个标准属性.它是一种非标准技术,应该是CSS3规范的一部分. 1. 旧的Opacity设置 以下代码是Firefox和Safari旧版本所需的透明度设置: #myElement {      -khtml-opacity: .5;      -moz-opacity: 0.5;  } -khtml-o

CSS招数和过滤器

在理想环境中,编写正确的CSS会在支持CSS的浏览器中正常的工作.不幸的事,我们并不是生活在理想环境中,浏览器有不少bug和不一致的地方.为了创建能在各种浏览器上显示相同样式的页面,CSS开发人员需要发挥创造性.通过利用bug和未实现的CSS,开发人员能够选择性的对不同的浏览器应用不同的规则.招数和过滤器是开发人员强大的工具.但是,正是因为强大,使用的时候才更应该谨慎.了解各种常用招数和它们的实现原理确实很重要,但是,了解在什么时候使用它们和什么时候不使用它们也同样重要. 过滤单独的样式表 将招

CSS中加号、星号及其他符号的作用

转自:http://blog.sina.com.cn/s/blog_6790717801011dx8.html 首先,什么是CSS hack? 针对不同的浏览器写不同的CSS code的过程,就叫CSS hack! CSS hack由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果. 这个时候我们就需要针对不同的浏览器去写不同的

前端性能优化(css动画篇)

正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到了很多,在这里记录一下,其中的知识都是来源于这俩篇文章,我只是截取了其中比较关注的内容出来,原文地址High Performance Animations及Accelerated Rendering in Chrome 原理 现代浏览器在使用CSS3动画时,以下四种情形绘制的效率较高,分别是:* 改

前端性能优化 CSS动画

最近拜读了一下html5rocks上几位大神写的一篇关于CSS3动画性能优化的文章,学到了很多,在这里记录一下,其中的知识都是来源于这俩篇文章,我只是截取了其中比较关注的内容出来,原文地址High Performance Animations及Accelerated Rendering in Chrome 原理 现代浏览器在使用CSS3动画时,以下四种情形绘制的效率较高,分别是: * 改变位置 * 改变大小 * 旋转 * 改变透明度 层?重绘?回流和重布局?图层重组? 首先要了解CSS的图层的概

css 改变图片灰度颜色

我一直喜欢灰度图像因为我认为他们看起来更有艺术感.很多图片编辑如Photoshop很容易把你的彩色图像变成灰度.甚至有选择调整颜色深度和色调.不幸的是,这样的效果想做在网络上并不容易,因为浏览器有差异. 1.CSS Filter 使用CSS过滤器属性可能是最简单的方法把图像变成灰度.以往,IE浏览器有一个专有的CSS属性称为过滤应用自定义效果包括灰度. 现在,过滤器属性是CSS3规范的一部分,并支持在一些浏览器,Firefox.Chrome和Safari.以前,我们也提到Webkit过滤器,它不

Google HTML/CSS/JS代码风格指南

JS版本参见:http://www.zhangxinxu.com/wordpress/2012/07/google-html-css-javascript-style-guides/ HTML/CSS修正版本 2.1 背景 本文档定义了HTML/CSS的编写格式和风格规则.它旨在提高合作和代码质量,并使其支持基础架构.适用于HTML/CSS文件,包括GSS文件. 只要代码质量是可以被维护的,就能很好的被工具混淆.压缩和合并. 样式规则 协议 嵌入式资源书写省略协议头 省略图像.媒体文件.样式表和

高性能移动端开发

不知不觉,春节就过完了,还没来得及好好享受就没了.好想来一场说走就走的旅行??,不吹水了,直接进入正题. 最近在做一个需求,发现了薄弱的地方,趁这个好机会深入了解一下,拓宽一下视野- 众所周知,网页不仅应该被快速加载,同时还应该流畅运行,比如快速响应的交互,如丝般顺滑的动画-- 在实际开发中如何做到上面所说的效果呢? 1. 确认渲染性能的分析标准 2. 准备尺子去衡量渲染性能标准 3. 对耗时多的地方进行优化 我们可以粗略的得到下面的优化目标 第一个是 首屏呈现时间,网上的资料已经非常非常多了,