box-shadow

box-shadow算是css3中比较常用的属性,通常的用法我们会给它传4个参数,就像下面的这个例子:

水平偏移和垂直偏移为0,模糊半径为10px,阴影颜色为正红色。

.box{
  width: 80px;
  height: 80px;
  box-shadow: 0 0 10px #f00;
}

当然我们也可以给它传更多的参数,来得到不同的效果:

box-shadow可以传6个参数:

1、inset ,表示内阴影,不填表示外阴影。

2、阴影的水平偏移量,正值时阴影在容器的右边,负值时阴影在容器的左边。

3、阴影的垂直偏移量,正值时阴影在容器的下边,负值时阴影在容器的上边。

4、阴影模糊半径

5、阴影的扩展半径。如果是正值,阴影将扩大,如果是负值,阴影将缩小。

6、阴影颜色。

 

内阴影

.box {
width: 80px;
height: 80px;
box-shadow: inset 0 0 10px #f00;
background-color: #dee;

我们也可以给容器同时设置内阴影和外阴影,多组阴影之间用,分隔:

.box {
  width: 80px;
  height: 80px;
  margin: 20px;
  box-shadow: inset 0 0 10px #f00,0 0 10px #00f;
}

还有一点需要注意的是,我们不能直接给img设置内阴影,看下这个例子:

设置外阴影时:

<style>
    img{
        box-shadow: 0px 0px 10px #f00;
    }
</style>

<img src="2551.jpg" width="200px">

但是设置内阴影时:

<style>
    img{
        box-shadow: inset 0px 0px 10px #fff;
    }
</style>

<img src="2551.jpg" width="200px">

解决的方法很简单,只要给img外层加上一个容器,把阴影加在该容器上即可。

 

扩展半径

它比内阴影还要少用到

.box {
  width: 100px;
  height: 100px;
  background-color: #f00;
  box-shadow: 0 0 0 10px #edd;
}

这里没有设偏移量和模糊半径。从视觉上看,就像给box加了一个10px的边框一样。

当然box-shadow不会影响盒模型。

 

我们来测试下扩展半径为0、正、负值的情况,这次配合偏移和模糊效果来看:

.box {
  width: 100px;
  height: 100px;
  background-color: #f00;
  box-shadow: 10px 0 10px 0px #00f;//扩展半径为0
}

.box {
  width: 100px;
  height: 100px;
  background-color: #f00;
  box-shadow: 10px 0 10px 6px #00f;//扩展半径为正值
}

.box {
  width: 100px;
  height: 100px;
  background-color: #f00;
  box-shadow: 10px 0 10px -6px #00f;//扩展半径为负值
}

 

 

为容器设置多个阴影

多个阴影在上面的内阴影例子中已经见过,但这里要讲的不是如何设置多个阴影,而是多个阴影之间的层叠关系。


         

就像蛋糕,最上面的阴影在最顶层(视觉上是最里层),写在最下面的阴影在最低层(视觉上是最外层)。如果上面的阴影太大就会遮住下面的阴影。

比如我扩大底层的扩展半径为40px,此时的阴影效果如图:白色阴影将中间的几个阴影覆盖掉了。

posted on 2014-09-21 12:52  叫我钱了个浅  阅读(471)  评论(0编辑  收藏  举报

导航