zoukankan      html  css  js  c++  java
  • 精通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(); 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



    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    VC2013一些感受
    第三周 分析程序题
    进度条——持续更新
    怪自己,不怪书
    源程序版本管理软件和项目管理软件
    学习进度条
    个人最终总结
    win8以上windows系统eclipse环境下图片显示乱码问题解决
    黄金点游戏
    编码用命令行执行的C语言词语统计程序
  • 原文地址:https://www.cnblogs.com/yeminglong/p/2835871.html
Copyright © 2011-2022 走看看