精通CSS滤镜(filter)(实例解析)
CSS(Cascading Style Sheets) 层叠样式表单。1998年5月12日,Cascading Style Sheets,level 2 成为了W3C
的新标准。同时,”W3C CoreStyles '和CSS2 Validation Service' 以及“CSS Test Suite' 宣布成立。它是一组样式,样式
中的属性在HTML元素中依次出现,并显示在浏览器中。样式可以定义在HTML文档的标志(TAG)里,也可以在外部附加文档
作为外加文档。此时,一个样式表单可以作用于多个页面---甚至整个站点,因此具有更好的易用性和扩展性。
对于滤镜和渐变效果,前者是基础,因为后者就是滤镜效果的不断变化和演示更替。当滤镜和渐变效果结合到一个基本
的SCRIPT小程序中后,网页设计者就可以拥有一个建立动态交互文档的强大工具。也就是CSS FILTER+ SCRIPT, 这就说
明想要建立动态的文档还要一些SCRIPT (脚本语言)的基础。
CSS半透明滤镜在FIREFOX和IE下面的能够通用的写法,记录下来备用:
CSS代码
.test{ background:#000; color:white; width:200px; position:absolute; left:10px; top:10px; filter: Alpha(opacity=10); -moz-opacity:.1; opacity:0.1; }
这里关键的是
CSS代码
filter: Alpha(opacity=10);
-moz-opacity:.1;
opacity:0.1;
这三句,第一句是ie 支持.第二三句是firefox支持的,但是版本不一样就有两种了,所以用时候把三句都加上就行了
可视化滤镜属性只能用在HTML控件元素上,不能使用div的id,class定义。所谓的HTML空间元素就是它们在页面上定
义了一个矩形空间,浏览器的窗口可以显示这些空间。下面列出了HTML合法的控件和它们的说明。 元素
说明
BODY
网页文档的主体元素,所有的可见范围都在元素内
BUTTON
表单域的按钮,可以有“发送(submit)”、“重置(reset)”等形式
DIV
定义了网页上的一个区域,这个区域的高度、宽度或者绝对位置都是以知的
IMG
图片元素,通过指定“src'属性来指定图片的来源
INPUT 输入表单域
MARQUEE
移动字幕效果
SPAN
定义了网页上的一个区域,这个区域的高度、宽度或者绝对位置都是以知的
TABLE 表格
TD
表格数据单元格
TEXTAREA 文本区域
TFOOT
多行输入文本框
TH 表格标题单元格
THEAD
表格标题
TR 表格行
IE4.0以上支持的滤镜属性表
滤镜效果 描述 :
Alpha 设置透明度
Blru 建立模糊效果
Chroma
把指定的颜色设置为透明
DropShadow 建立一种偏移的影象轮廓,即投射阴影
FlipH 水平反转
FlipV
垂直反转
Glow 为对象的外边界增加光效
Grayscale 降低图片的彩色度
Invert
将色彩、饱和度以及亮度值完全反转建立底片效果
Light 在一个对象上进行灯光投影
Mask 为一个对象建立透明膜
Shadow
建立一个对象的固体轮廓,即阴影效果
Wave 在X轴和Y轴方向利用正弦波纹打乱图片
Xray 只显示对象的轮廓
下面分别阐述:
1、Alpha 滤镜
语法:{FILTER:ALPHA(opacity=opacity,finishopacity=finishopacity,style=style,startx=startx,
starty=starty,finishx=finishx,finishy=finishy)}
'Alpha'属性是把一个目标元素与背景混合。设计者可以指定数值来控制混合的程度。这种“与背景混合”通俗地说
就是一个元素的透明度。通过指定坐标,可以指定点、线、面的透明度。他们的参数含义分别如下:
“opacity'代表透明度水准。默认的范围是从0 到 100,他们其实是百分比的形式。也就是说,0代表完全透明,
100代表完全不透明。”finishopacity'是一个可选参数,如果想要设置渐变的透明效果,就可以使用他们来指定
结束时的透明度。范围也是0 到 100。“style' 参数指定了透明区域的形状特征。其中0代表统一形状、1代表线形、2代表放射状
、3代表长方形。”STARTX“和”STARTY“代表渐变透明效果的开始X和Y坐标。”
FINISHX“和”FINISHY“代表渐变透明效果结束X和Y 的坐标。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{FILTER:ALPHA(opacity=50,finishopacity=80,style=2} </style> </head> <body> <div class="try"><font color="#CC33C2">施杨de编程世界</font></div> <div><img src="image/ch2.gif" /></div> </body> </html>
2、Blur 滤镜
语法:对于HTML:{filter:blur(add=add,direction=direction,strength=strength)}
对于Script语言:
[oblurfilter=]
object.filters.blur
用手指在一幅尚未干透的油画上迅速划过时,画面就会变得模糊。”Blur'就是产生同样的模糊效果。
“ADD”参数是一个布尔判断“TRUE(默认)”或者“FALSE”。它指定图片是否被改变成印象派的模糊
效果。模糊效果是按顺时针的方向进行的,“DIRECTION”参数用来设置模糊的方向。其中0度代表垂直
向上,然后每45度为一个单位。它的默认值是向左的270度。“STRENGTH“值只能使用整数来指定,
她代表有多少像素的宽度将受到模糊影响。默认是5个。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{filter:blur(add=ture,direction=135,strength=200)} </style> </head> <body> <div class="try"><font color="#CC33C2">施杨de编程世界</font></div> <div><img src="image/ch2.gif" /></div> </body> </html>
3、FlipH, FlipV 滤镜
语法:{filter:filph} ,{filter:filpv} 分别是水平反转和垂直反转
4、Chroma 滤镜
语法:{filter:chroma(color=color)}
使用”Chroma'属性可以设置一个对象中指定的颜色为透明色,参数COLOR即要透明的颜色。
可以屏蔽颜色,大有用处。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{filter:chroma(color=#CC33C2)} </style> </head> <body> <div class="try"><font color="#CC33C2">施杨de编程世界</font></div> <div><img src="image/ch2.gif" /></div> </body> </html>
5、DropShadow 滤镜
语法:{filter:dropshadow(color=color,offx=ofx,offy=offy,positive=positive)}
“DropShaow'顾名思义就是添加对象的阴影效果。其工作原理是建立一个偏移量,加上较深。
'Color'代表投射阴影的颜色,'offx'和'offy'分别是X方向和Y方向阴影的饿偏移量。
'Positive'参数是一个布尔值,如果为“TRUE(非0)”,那么就为任何的非透明像素建立可见的投影。
如果为“FASLE(0)”,那么就为透明的像素部分建立透明效果 代码如下:
dropshadow(color=gray,offx=5,offy=5.positive=0)
6、Glow 滤镜
语法:{filter:glow(color=color,strength)}
当对一个对象使用'glow'属性后,这个对象的边缘就会产生类似发光的效果。“COLOR”是指定
发光的颜色,“STRENGTH”则是强度的表现,可以从1到255之间的任何整数来指定这个力度。
filter:glow(color=red,strength=10) 后的效果
filter:glow(color=#ffff00,strength=5) 后的效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{filter:glow(color=red,strength=10)} .try{ margin-left:30px;} </style> </head> <body> <br /><br /> <div class="try"><font color="#CC33C2">施杨de编程世界</font><br /> <br /> <div><img src="image/ch2.gif" /></div><br /><br /></div> </body> </html>
7、Gray ,Invert,Xray 滤镜
语法:{filter:gray}
,{filter:invert},{filter:xray}
Gray滤镜是把一张图片变成灰度图;(汶川大地震后很多网站色调都变灰色,就是用的这一点代码实现的)
Invert滤镜是把对象的可视化属性全部翻转,包括色彩、饱和度、和亮度值;
Xray滤镜是让对象反映出它的轮廓并把这些轮廓加亮,也就是所谓的“X”光片。
8、Light 滤镜
语法:Filter{light}
这个属性模拟光源的投射效果。一旦为对象定义了“LIGHT'滤镜属性,那么就可以调用它的“方法(Method)'来设置或者改变属性。“LIGHT'可用的方法有:
·AddAmbient
加入包围的光源
·AddCone 加入锥形光源
·AddPoint 加入点光源
·Changcolor
改变光的颜色
·Changstrength 改变光源的强度
·Clear 清除所有的光源
·MoveLight
移动光源
addAmbient (iRed,iGreen,iBlue,iStrength) :
为滤镜添加环境光。环境光是无方向的,并且均匀的洒在页面的表面。环境光有颜色和强度值,可以为对象田家更多的颜色。它通
常和其他光一起使用。无返回值。参数见下表。
iRed
: 必选项。整数值(Integer)。 指定红色值。取值范围为 0 - 255 。
iGreen : 必选项。整数值(Integer)。
指定绿色值。取值范围为 0 - 255 。
iBlue : 必选项。整数值(Integer)。 指定蓝色值。取值范围为 0 - 255
。
iStrength : 必选项。整数值(Integer)。 指定光强度。取值范围为 0 - 100 。
changeColor
(iLightNumber,iRed,iGreen,iBlue,fAbsolute) : 改变光的颜色。无返回值。参数见下表。
iLightNumber
: 必选项。整数值(Integer)。 指定光的标识符。
iRed : 必选项。整数值(Integer)。指定红色值。取值范围为 0 - 255
。
iGreen : 必选项。整数值(Integer)。指定绿色值。取值范围为 0 - 255 。
iBlue :
必选项。整数值(Integer)。指定蓝色值。取值范围为 0 - 255 。
fAbsolute :
必选项。布尔值(Boolean)。指定改变是替换当前设置的绝对值,还是加到当前设置的相对值。此参数不等于零表示采用绝对值。否则表示采用相对值。
可以定义光源的虚拟位置,以及通过调整X轴和Y轴的数值来控制光源焦点的位置,还可以调整光源的形式(点光源或者锥形光源)指定光源是否模糊边界、光源的颜色、亮度等属
性。如果动态的设置光源,可能回产生一些意想不到的效果。
实现图片自动变色效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{} .try{ margin-left:30px;} </style> </head> <body> <br /><br /> <div class="try"><font color="#CC33C2">施杨de编程世界</font><br /> <br /> <div><img src="image/ch2.gif" style="filter:light(); width:400; height:300" onload="javascript:this.filters.light.addAmbient(10,250,100,55)" onmousemove="javascript:this.filters.light.changeColor(0,150,100,50,0)"/></div><br /><br /></div> </body> </html>
9、Mask 滤镜
语法:{filter:mask(color=color)}
使用'MASK'属性可以为对象建立一个覆盖于表面的膜,其效果就象戴者有色眼镜看物体一样。虽然实现,但是效果并不想想象的那样帅,不好用。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{ filter:mask(color=yellow);} #try{ margin-left:30px;} </style> </head> <body> <br /><br /> <div id="try"><font color="#CC33C2">施杨de编程世界</font><br /> <br /> <div><img src="image/ch2.gif" /></div><br /><br /></div> </body> </html>
10、Shadow 滤镜
语法:{filter:shadow(color=color,direction=direction)}
利用“Shadow”属性可以在指定的方向建立物体的投影,COLOR是投影色,DIRECTION是设置投影的方向。其中0度代表垂直向上,然后每45度为一个单位。它的默认值是向左的270
度。
filter:shadow(color=red,direction=225)
filter:shadow(color=blue,direction=225)
filter:shadow(color=gray,direction=225)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{ filter:shadow(color=red,direction=225);} #try{ margin-left:30px;} </style> </head> <body> <br /><br /> <div id="try"><font color="#CC33C2">施杨de编程世界</font><br /> <br /> <div><img src="image/ch2.gif" /></div><br /><br /></div> </body> </html>
11、Wave 滤镜 语法:{filter:wave(add=add,freq=freq,lightstrength=strength,phase=phase,strength=strength)}
'wave'
属性把对象按垂直的波形样式打乱。默认是“TRUE(非0)”,
“ADD”表示是否要把对象按照波形样式打乱,
“FREQ”是波纹的频率,也就是指定在对象上一共需要产生多少个完整的波纹,
“LIGHTSTRENGTH”参数可以对于波纹增强光影的效果,范围0----100,
“PHASE”参数用来设置正弦波的偏移量。
“STRENGTH”代表振幅大小。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css滤镜</title> <style> body{ filter:wave(add=add,freq=freq,lightstrength=strength,phase=phase,strength=20);} #try{ margin-left:30px;} </style> </head> <body> <br /><br /> <div id="try"><font color="#CC33C2">施杨de编程世界</font><br /> <br /> <div><img src="image/ch2.gif" /></div><br /><br /></div> </body> </html>
提供了一个滤镜学习网址,感觉不错,于是加上来:http://msdn.microsoft.com/zh-cn/library/ms532853(en-us,VS.85).aspx
本文转自:施杨(施杨's Think out)