CSS3的box-shadow属性可以让我们轻松实现图层阴影效果。我们来实战详解一下这个属性。
一. box-shadow属性的浏览器兼容性
先来看一个这个属性的浏览器兼容性:
1、Opera: 不知道是从哪个版本开始支持的,我在发这篇文章测试的时候,正好更新了Opera到最新的10.53版本,已经支持box-shadow属性。
2、firefox通过私有属性-moz-box-shadow支持。
3、Safari和Chrome通过私有属性-webkit-box-shadow支持。
所有IE不支持(不知道IE9是否有所改善)。别急,我们将在文章最后会介绍一些针对IE的Hack。
二. box-shadow属性的语法
box-shadow有六个可设值:
img{box-shadow:阴影类型 X轴位移 Y轴位移 阴影大小 阴影扩展 阴影颜色 }
1、当不设阴影类型时,默认为投影效果。当设为inset时,为内阴影效果。
2、X轴和Y轴位移不等同但类似于photoshop里面的”角度”和”位置。
3、阴影大小、扩展、颜色和Photoshop里面的都同理。
三. 实例解析
让我们通过几个实例来看一个box-shadow的效果,先弄个简单的html供测试:
以下为引用的内容:
<html>
<head>
<style type="text/css">CSS部份写在这里</style>
</head>
<body>
<img src=http://www.webskys.com/css3/"test.jpg" />
</body>
</html>
请注意:为了省事儿,下面的CSS代码中只写了box-shadow,在实际使用中,你应该把-moz-box-shadow和-webkit-shadow也写上。你需要做的很简,复制两个box-shadow,在它们前面分别加上-moz-和-webkit-。
以下为引用的内容:
img {
-moz-box-shadow:2px 2px 10px #06C;
-webkit-box-shadow:2px 2px 10px #06C;
box-shadow:2px 2px 10px #06C;
}
(1). 投影,没有位移,10px的阴影大小,没有扩展,颜色#06C
以下为引用的内容:
img{box-shadow:0 0 10px #06C;}
这里的颜色值是HEX值,我们还可以使用RGBA值,RGBA值的好处是,它多了一个Alpha透明值,你可以控制阴影的透明度。
以下为引用的内容:
img{box-shadow: 0 0 10px rgba(0, 255, 0, .5)}
(2). 在上面的基础上加上20px的扩展
以下为引用的内容:
img{box-shadow:0 0 10px 20px #06C;}
(3). 内阴影,无位移,10px大小,没有扩展,颜色#06C
以下为引用的内容:
img{box-shadow:inset 0 0 10px #06C;}