Css滤镜比较帅,可以取代一部分PS才能实现的效果,但是缺点也比较明显,浏览器并不是都支持。但考虑到IE6,7...占的市场份额还是挺很大的,所以有学习的必要。网上不缺CSS滤镜的知识,但是大多是长篇大论,或不够全面。现在结合自己做的例子和网上的资料,自己的学习心得总结如下。毕竟我不是专业搞美工,所以这篇随笔,是基本是面向初学者,并使其快速掌握。也了解现在的CSS都能做什么。为了充实内容,顺便给出jQuery实现弹出层特效的源码。
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 (脚本语言)的基础。
可视化滤镜属性只能用在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>
效果图:
jQuery弹出层源码:
页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0045)http://interface.eyecon.ro/demos/windows.html -->
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD><TITLE>Resizeable demo - Interface plugin for jQuery</TITLE>
<META http-equiv=Content-Language content=en>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<SCRIPT
src="js/jquery.js"
type=text/javascript></SCRIPT>
<SCRIPT
src="js/interface.js"
type=text/javascript></SCRIPT>
<link href="css/div_show.css" rel="stylesheet" type="text/css" media="all">
<META content="MSHTML 6.00.6000.16735" name=GENERATOR>
</HEAD>
<BODY><A id=windowOpen>管理员登陆</A>
<DIV id=window>
<DIV id=windowTop>
<DIV id=windowTopContent>登陆界面</DIV>
<IMG id=windowMin
src="css/images/window_min.jpg">
<IMG id=windowMax
src="css/images/window_max.jpg">
<IMG id=windowClose
src="css/images/window_close.jpg">
</DIV>
<DIV id=windowBottom>
<DIV id=windowBottomContent></DIV></DIV>
<DIV id=windowContent>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P></DIV><IMG id=windowResize
src="css/images/window_resize.gif">
</DIV>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<SCRIPT type="text/javascript" src="js/div_show.js"></SCRIPT>
<SCRIPT language=JavaScript type=text/javascript>var client_id = 1;</SCRIPT>
</BODY></HTML>
css源码:
BODY {
BACKGROUND: #fff; HEIGHT: 100%
}
#window {
DISPLAY: none; LEFT: 200px; OVERFLOW: hidden; WIDTH: 400px; POSITION: absolute; TOP: 100px; HEIGHT: 300px
}
#windowTop {
BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(images/window_top_end.png); OVERFLOW: hidden; CURSOR: move; BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 30px
}
#windowTopContent {
BACKGROUND-POSITION: left top; FONT-WEIGHT: bold; FONT-SIZE: 14px; BACKGROUND-IMAGE: url(images/window_top_start.png); OVERFLOW: hidden; COLOR: #6caf00; TEXT-INDENT: 10px; LINE-HEIGHT: 30px; MARGIN-RIGHT: 13px; BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 30px
}
#windowMin {
RIGHT: 25px; CURSOR: pointer; POSITION: absolute; TOP: 10px
}
#windowMax {
DISPLAY: none; RIGHT: 25px; CURSOR: pointer; POSITION: absolute; TOP: 10px
}
#windowClose {
RIGHT: 10px; CURSOR: pointer; POSITION: absolute; TOP: 10px
}
#windowBottom {
BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(images/window_bottom_end.png); BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 270px
}
#windowBottomContent {
BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(images/window_bottom_start.png); MARGIN-RIGHT: 13px; BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 270px
}
#windowResize {
RIGHT: 3px; CURSOR: se-resize; BOTTOM: 5px; POSITION: absolute
}
#windowContent {
BORDER-RIGHT: #6caf00 1px solid; BORDER-TOP: #6caf00 1px solid; FONT-SIZE: 11px; LEFT: 10px; OVERFLOW: auto; BORDER-LEFT: #6caf00 1px solid; WIDTH: 375px; MARGIN-RIGHT: 10px; BORDER-BOTTOM: #6caf00 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; POSITION: absolute; TOP: 30px; HEIGHT: 255px; BACKGROUND-COLOR: #fff
}
#windowContent * {
MARGIN: 10px
}
.transferer2 {
BORDER-RIGHT: #6baf04 1px solid; BORDER-TOP: #6baf04 1px solid; FILTER: alpha(opacity=30); BORDER-LEFT: #6baf04 1px solid; BORDER-BOTTOM: #6baf04 1px solid; BACKGROUND-COLOR: #b4f155; -moz-opacity: 0.3; opacity: 0.3
}
js源码:
$(document).ready(
function()
{
$('#windowOpen').bind(
'click',
function() {
if($('#window').css('display') == 'none') {
$(this).TransferTo(
{
to:'window',
className:'transferer2',
duration: 400,
complete: function()
{
$('#window').show();
}
}
);
}
this.blur();
return false;
}
);
$('#windowClose').bind(
'click',
function()
{
$('#window').TransferTo(
{
to:'windowOpen',
className:'transferer2',
duration: 400
}
).hide();
}
);
$('#windowMin').bind(
'click',
function()
{
$('#windowContent').SlideToggleUp(300);
$('#windowBottom, #windowBottomContent').animate({height: 10}, 300);
$('#window').animate({height:40},300).get(0).isMinimized = true;
$(this).hide();
$('#windowResize').hide();
$('#windowMax').show();
}
);
$('#windowMax').bind(
'click',
function()
{
var windowSize = $.iUtil.getSize(document.getElementById('windowContent'));
$('#windowContent').SlideToggleUp(300);
$('#windowBottom, #windowBottomContent').animate({height: windowSize.hb + 13}, 300);
$('#window').animate({height:windowSize.hb+43}, 300).get(0).isMinimized = false;
$(this).hide();
$('#windowMin, #windowResize').show();
}
);
$('#window').Resizable(
{
minWidth: 200,
minHeight: 60,
maxWidth: 700,
maxHeight: 400,
dragHandle: '#windowTop',
handlers: {
se: '#windowResize'
},
onResize : function(size, position) {
$('#windowBottom, #windowBottomContent').css('height', size.height-33 + 'px');
var windowContentEl = $('#windowContent').css('width', size.width - 25 + 'px');
if (!document.getElementById('window').isMinimized) {
windowContentEl.css('height', size.height - 48 + 'px');
}
}
}
);
}
);
再下载两个jquery的文件分别是:
interface.js,jquery.js
转载:www.cnblogs.com/shiyangxt