CSS3属性box-shadow详解[盒子阴影]

又一篇css3教程来自http://qdgcs.co.cc 转载请声明。
上一次我们一起学习了 CSS3属性Border-Radius[圆角],这次,我们来看看box-shadow的具体使用方法。其实它的用法与CSS3属性text-shadow[文字特效]非常相似,有必要的同学可以复习一下。

box-shadow的语法如下:

box-shadow: <length> <length> <length>?<length>?||<color>
box-shadow:inset x-offset y-offset blur-radius spread-radius color

解析:box-shadow:投影方式 X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色box-shadow和text-shadow相似,可以使用一个或多个投影,如果使用多个投影时必须需要用逗号“,”分开。

box-shadow属性至多有6个参数设置,他们分别取值:

阴影类型:此参数是一个可选值,如果不设值,其默认的投影方式是外阴影;如果取其唯一值“inset”,就是将外阴影变成内阴影,也就是说设置阴影类型为“inset”时,其投影就是内阴影;

X-offset:是指阴影水平偏移量其值可以是正负值可以取正负值,如果值为正值,则阴影在对象的右边,反之其值为负值时,阴影在对象的左边;

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

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

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

阴影颜色:此参数可选,如果不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样,特别是在webkit内核下的safari和chrome浏览器将无色,也就是透明,建议不要省略此参数。

浏览器的兼容:

这个属性已经广泛被最新版的各大浏览器支持,我们只要写一个box-shadow即可通用,无需再考虑内核限制,这是一件令人兴奋的事情!

我们来看一个例子

[css]
div
{
width: 100px;
height: 100px;
box-shadow:
-2px 0 10px rgba(1,2,3,0.5), /*左边阴影 rgba的a相当于filter: alpha(opacity=?); 设置颜色透明度 */
0 -2px 10px blue, /*顶部阴影*/
0 2px 10px red, /*底部阴影*/
2px 0 10px yellow; /*右边阴影*/
}
[/css]

效果如图:
我们结合上一章所学,来做一个简单的文字logo,来看代码:

[css]
.logo
{
padding:50px;
width: 150px;
height: 30px;
border: 30px solid rgba(22,22,22,0.1);
border-top-left-radius: 60px 90px;
border-bottom-right-radius: 90px 60px;
box-shadow: inset 10px /*水平偏移 正右负左*/ -10px /*垂直偏移 正下负上*/ 10px 10px rgba(26,72,222,0.4),
inset -10px /*水平偏移 正右负左*/ 10px /*垂直偏移 正下负上*/ 10px 10px rgba(26,72,222,0.7);
}
[/css]

实例Demo

在上面的例子中我们还看到了相框的实例,这里要解释一下

[css]
img
{
box-shadow:0 0 10px red,
2px 2px 10px 10px yellow,
4px 4px 12px 12px green;
}

/*我们只是调换了box-shadow的定义顺序,结果截然不同了。这里要注意,先定义的阴影显示在最上层,如果上层阴影大于底层,就会遮住底层阴影 */
.other
{
/*这里要注意,先定义的阴影显示在最上层,如果上层阴影大于底层,就会遮住底层阴影*/
box-shadow:4px 4px 12px 12px green,
0 0 10px red,
2px 2px 10px 10px yellow;

}
[/css]

实例Demo

感谢大家学习,原文地址:http://qdgcs.co.cc 转载请声明,谢谢。

posted @ 2012-03-26 10:35  _北北  阅读(1924)  评论(0编辑  收藏  举报