CSS3的box-shadow属性可以让我们轻松实现图层阴影效果。我们来实战详解一下这个属性。
先来看一个这个属性的浏览器兼容性:
- Opera:不知道是从哪个版本开始支持的,我在发这篇文章测试的时候,正好更新了Opera到最新的10.53版本,已经支持box-shadow属性。
- firefox通过私有属性-moz-box-shadow支持。
- Safari和Chrome通过私有属性-webkit-box-shadow支持。
所有IE不支持(不知道IE9是否有所改善)。别急,我们将在文章最后会介绍一些针对IE的Hack。
二、box-shadow属性的语法
box-shadow有六个可设值:
img{box-shadow:阴影类型 X轴位移 Y轴位移 阴影大小 阴影扩展 阴影颜色 }
- 当不设阴影类型时,默认为投影效果。当设为inset时,为内阴影效果。
- X轴和Y轴位移不等同但类似于photoshop里面的”角度”和”位置。
- 阴影大小、扩展、颜色和Photoshop里面的都同理。
三、实例解析
让我们通过几个实例来看一个box-shadow的效果,先弄个简单的html供测试:
<html> <head>
<style type="text/css">CSS部份写在这里</style>
</head>
<body>
<img src="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;}