如何用CSS制作投影效果?

html-css039

如何用CSS制作投影效果?,第1张

CSS据我所知好像没有能制作投影效果的属性。但是CSS 3有制作投影的属性:text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果;

由于浏览器兼容性问题。它们使用的方式不同;如下所示:

.box-shadow{  

           //Firefox4.0-  

           -moz-box-shadow:投影方式 X轴偏移量 Y轴偏移量阴影模糊半径 阴影扩展半径 阴影颜色  

           //Safariand Google chrome10.0-  

           -webkit-box-shadow:投影方式 X轴偏移量 Y轴偏移量阴影模糊半径 阴影扩展半径 阴影颜色  

           //Firefox4.0+、 Google chrome 10.0+ 、 Oprea10.5+ and IE9  

           box-shadow:  投影方式 X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色    

}

参数介绍:

投影方式:此参数可选。如不设值,默认投影方式是外阴影;如取其唯一值“inset”,其投影为内阴影;

X轴偏移量:阴影水平偏移量,其值可以是正负值。如果值为正值,则阴影在对象的右边,其值为负值时,阴影在对象的左边;

Y轴偏移量:阴影垂直偏移量,其值也可以是正负值。如果为正值,阴影在对象的底部,其值为负值时,阴影在对象的顶部;

阴影模糊半径:此参数可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;

阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;

阴影颜色:此参数可选。如不设定颜色,浏览器会取默认色,但各浏览器默认取色不一致,特别是在webkit内核下的safari和chrome浏览器下表现为透明色,在Firefox/Opera下表现为黑色(已验证),建议不要省略此参数。

同时为了兼容各主流浏览器并支持这些主流浏览器的较低版本,在基于Webkit的Chrome和Safari等浏览器上使用box-shadow属性时,我们需要将属性的名称写成-webkit-box-shadow的形式。Firefox浏览器则需要写成-moz-box-shadow的形式。

滤镜效果 | 功能描述

-----------------------------------------------

Alpha | 设置不同的透明度变化效果

-----------------------------------------------

Blur | 建立模糊效果

-----------------------------------------------

DropShadow| 建立一种偏移的影象轮廓,即投射阴影

-----------------------------------------------

FlipH | 水平翻转

-----------------------------------------------

FlipV | 垂直翻转

-----------------------------------------------

Glow | 为对象的边界增加色彩光效

-----------------------------------------------

Gray | 将图片以灰度形式显示

-----------------------------------------------

Invert | 将色彩、饱和度以及亮度值完全反转,类似底片效果

-----------------------------------------------

Light | 在一个对象上进行灯光投影

-----------------------------------------------

Mask | 为一个对象建立彩色透明遮罩

-----------------------------------------------

Shadow | 为对象建立轮廓的影效果

-----------------------------------------------

Wave | 在X轴和Y轴方向利用正弦波打乱图片

-----------------------------------------------

Xray | 只显示对象的轮廓

-----------------------------------------------

----------------括号里面的是参数。-------------

细致的解释看下面:

1、Alpha 滤镜

"Alpha"属性是把一个目标元素与背景混合。设计者可以指定数值来控制混合的程度。这种“与背景混合”通俗地说就是一个元素的透明度。通过指定坐标,可以指定各种不同范围的透明度。

Alpha 滤镜语法

{FILTER:ALPHA(opacity=opacity,finishopacity=finishopacity,

style=style,startx=startx,

starty=starty,finishx=finishx,finishy=finishy)}

参数含义分别如下:

参数 说明

opacity 透明度。默认的范围是从0 到 100,他们其实是百分比的形式。也就是说,0代表完全透明,100代表完全不透明。

finishopacity 是一个可选参数,如果想要设置渐变的透明效果,就可以使用他们来指定结束时的透明度。范围也是0 到 100。

style 指定透明区域的形状特征:

0 代表统一形状

1 代表线形

2 代表放射状

3 代表矩形

startx 渐变透明效果开始处的 X坐标。

starty 渐变透明效果开始处的 Y坐标。

finishx 渐变透明效果结束处的 X坐标。

finishy 渐变透明效果结束处的 Y坐标。

2、Blur 滤镜

用手指在一幅尚未干透的画面迅速划过时,画面就会变得模糊。”Blur"就是产生同样的模糊效果。

Blur滤镜语法 HTML:{filter:blur(add=add,direction=direction,

strength=strength)}

Script语言: [oblurfilter=] object.filters.blur

参数含义分别如下:

参数 说明

add 它指定图片是否被改变成印象派的模糊效果。模糊效果是按顺时针的方向进行的,

这是一个布尔值:ture (默认)或false

direction 该参数用来设置模糊的方向。

0度代表垂直向上,每45度为一个单位,默认值是向左的270度

strength 只能使用整数来指定,代表有多少像素的宽度将受到模糊影响,默认是5个像素。

3、DropShadow 滤镜

“DropShaow",顾名思义就是添加对象的阴影效果。其工作原理是建立一个偏移量,加上色彩。

DropShadow 滤镜语法 {filter:dropshadow

(color=color,offx=ofx,offy=offy,positive=positive)}

参数含义如下:

参数 说明

Color 代表投射阴影的颜色

offx X方向阴影的偏移量

offy Y方向阴影的偏移量

Positive 布尔值

如果为TRUE(非0),就为任何的非透明像素建立可见的投影

如果为FASLE(0),就为透明的像素部分建立透明效果

4、FlipH, FlipV 滤镜

FlipH 滤镜实现水平反转

FlipH 滤镜语法 {filter:filph}

FlipV 滤镜实现垂直反转

FlipV 滤镜语法 {filter:filpv}

5、Glow 滤镜

对一个对象使用"glow"属性后,这个对象的边缘就会产生类似发光的效果。

Glow 滤镜语法 {filter:glow(color=color,strength)}

参数含义如下:

参数 说明

Color 指定发光的颜色

STRENGTH 强度,值为1到255之间的任何整数,指定发光色力度和范围。

6、Gray 滤镜

使用Gray滤镜可以把一张图片变成灰度图,语法很简单:

Gray 滤镜语法 {filter:gray}

7、Invert滤镜

使用Invert滤镜可以把对象的可视化属性全部翻转,包括色彩、饱和度、和亮度值

Invert 滤镜语法 {filter:invert}

8、Xray滤镜

使用Xray滤镜可以让对象反映出它的轮廓并把这些轮廓加亮,类似于所谓的“X”光片。

Xray 滤镜语法 {filter:xray}

9、Mask 滤镜

Mask 滤镜语法 {filter:mask(color=color)}

使用"MASK"属性可以为对象建立一个覆盖于表面的膜,其效果就象戴着有色眼镜看物体一样 。

10、Light 滤镜

Light 滤镜语法 {filter:light}

这个属性模拟光源的投射效果。一旦为对象定义了“LIGHT"滤镜属性,那么就可以调用它的“方法(Method)"来设置或者改变属性。“LIGHT"可用的方法有:

参数 说明

AddAmbient 加入包围的光源

AddCone 加入锥形光源

AddPoint 加入点光源

Changcolor 改变光的颜色

Changstrength 改变光源的强度

Clear 清除所有的光源

MoveLight 移动光源

我们可以定义光源的虚拟位置,以及通过调整X轴和Y轴的数值来控制光源焦点的位置,还可以调整光源的形式(点光源或者锥形光源)指定光源是否模糊边界、光源的颜色、亮度等属性。如果动态的设置光源,可能会产生一些意想不到的效果。

11、Shadow 滤镜

Shadow 滤镜

语法 {filter:shadow(color=color,direction=direction)}

利用“Shadow”属性可以在指定的方向建立物体的投影,COLOR是投影色,DIRECTION是设置投影的方向。其中0度代表垂直向上,然后每45度为一个单位。它的默认值是向左的270度。

12、Wave 滤镜

Wave 滤镜

语法 {filter:wave(add=add,freq=freq,

lightstrength=strength,

phase=phase,strength=strength)}

参数 说明

wave 把对象按垂直的波形样式打乱。

默认是 TRUE(非0)

ADD 是否要把对象按照波形样式打乱

FREQ 波纹的频率,也就是指定在对象上一共需要产生多少个完整的波纹

LIGHTSTRENGTH 可以对于波纹增强光影的效果,范围0----100

PHASE 设置正弦波的偏移量

STRENGTH 振幅大小

--------------------------------------------------------------

内容很多,慢慢看。还有这个问题发到电脑那块的话肯定有很多人回答的。

资料来天极网~

1、首先新建一个html文件,命名为test.html,使用div标签创建一个模块,用于测试。如下图所示。

2、在test.html文件内,给div添加一个class属性,属性值设置为myway。

3、然后在css标签内,通过class设置div的样式,定义它的宽度为200px,高度为200px,背景颜色为黑色。

4、接着在css标签内,再使用box-shadow属性设置div的阴影效果,其中,左边阴影为绿色,顶部阴影为蓝色,底部阴影为红色,右边阴影为黄色。

5、最后在浏览器打开test.html文件,查看实现的效果,如下图所示就完成了。