与text-shadow的原理一样,只不过text-shadow是为文字做阴影,而box-shadow是为盒对象做阴影。这里的盒包括块状(block)、内联(inline)、内联块状对象(inline-block)。
如果对盒对象不清楚的童鞋,可以先看这篇文章:
CSS教程:display常用的四个值(block,inline,none,inline-block)
1、语法结构
box-shadow:length length length color;
前面三个length分别表示阴影偏移盒的水平距离、纵向距离、模糊半径,color表示阴影的颜色。
比如:
box-shadow:10px 10px 0px #999; box-shadow:-10px -10px 0px #999;
如果要满足各种浏览器,最好加上前缀:
-webkit-box-shadow:0 10px 10px rgba(0,0,0,.7); -moz--box-shadow:0 10px 10px rgba(0,0,0,.7); box-shadow:0 10px 10px rgba(0,0,0,.7);
2、案例效果
3、HTML源代码
<body> <div class="main"> <div class="boxs clearfix"> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> <div class="box">1</div> </div> <div class="box1 cl">2</div> </div> </body>
4、CSS样式代码
body{
margin:0;
padding:0;}
.clearfix:after{/*高度自适应*/
content:"";
display:block;
clear:both;}
.cl{/*清除浮动影响*/
clear:both;}
body{
background-color:#eee;}
body:before{/*在body里面的最前面添加内容*/
content:"";
position:fixed;/*固定定位*/
top:-10px;/*把高度往上移,看不见对象的高度。*/
left:0;
z-index:1000;
width:100%;
height:10px;/*有高度才能有阴影*/
-moz-box-shadow:0 0 10px rgba(0,0,0,.8);/*for firefox*/
-webkit-box-shadow:0 0 10px rgba(0,0,0,.8);/*for chrome,safari*/
box-shadow:0 0 10px rgba(0,0,0,.8);/*放在有前缀的样式之后*/
}
.main{
width:720px;
margin:60px auto;}
.box{
position:relative;/*相对定位*/
top:0;
left:0;
z-index:1;
width:150px;
height:150px;
background-color:#fff;
border-radius:2px;
float:left;
margin:5px;
padding:10px;
-webkit-transition:box-shadow .2s linear,top .2s linear;
-moz-transition:box-shadow .2s linear,top .2s linear;
transition:box-shadow .2s linear,top .2s linear;/*过渡效果*/}
.box:hover{/*在IE6里面不支持div的hover伪类选择器,如果要支持低端浏览器,请使用jQuery。*/
/*background-color:#F99;*/
cursor:pointer;/*光标变成手型*/
top:-1px;/*往上移动1px*/
-webkit-box-shadow:0 5px 20px #ccc;
-moz-box-shadow:0 5px 20px #ccc;
box-shadow:0 5px 20px #ccc;/*添加盒阴影。*/
}
.box1{
position:relative;
width:600px;
height:250px;
background-color:#fff;
-webkit-border-radius:2px;
-moz-border-radius:2px;
border-radius:2px;/*添加圆角半径*/
margin:20px;
padding:10px;
}
.box1:before,.box1:after{/*伪元素选择器,在box1里面的前后添加伪元素。*/
content:"";
position:absolute;
z-index:-1;/*置于box1的下面。*/
bottom:10px;
left:10px;
width:30%;
height:10px;
-webkit-box-shadow:0 10px 10px rgba(0,0,0,.7);
-moz--box-shadow:0 10px 10px rgba(0,0,0,.7);
box-shadow:0 10px 10px rgba(0,0,0,.7);
-ms-transform:rotate(-3deg);
-webkit-transform:rotate(-3deg);
-moz-transform:rotate(-3deg);
transform:rotate(-3deg);/*逆时针旋转3度。*/
}
.box1:after{
-ms-transform:rotate(3deg);
-webkit-transform:rotate(3deg);
-moz-transform:rotate(3deg);
transform:rotate(3deg);/*顺时针旋转3度*/
left:auto;/*设置left的值为auto,才能让after伪元素对象在右边显示。冲突上面设置的left:10px*/
right:10px;
}如果对css的伪元素(:before,:after)选择器还不懂的童鞋,可以先学习一下这两个选择器哦。

发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。