CSS3--实现特殊阴影 (实例)

时间:2021-09-24 06:28:15

学习来源:慕课网http://www.imooc.com/view/240

先看效果图↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

CSS3--实现特殊阴影 (实例)

HTML结构

 <body>
<div class="wrap effect">
<!-- effect类:是阴影类,其他元素也可以使用 -->
<h1>Shadow Effect</h1>
</div>
<ul class="box">
<li><img src="data:images/photo1.jpg" alt=""></li>
<li><img src="data:images/photo2.jpg" alt=""></li>
<li><img src="data:images/photo3.jpg" alt=""></li>
</ul>
</body>

CSS样式(省略了各浏览器前缀)

 /*通用类*/
body { font-family: Arial; font-size: 20px;}
body,ul {margin:; padding:; list-style: none;}
.wrap {width:70%; height:200px; margin:50px auto; background: #fff; }
.wrap h1 {font-size: 20px; text-align: center; line-height: 200px; } /*弧度阴影*/
.effect {
position: relative;
box-shadow: 0px 1px 4px rgba(0,0,0,0.3),
0 0 10px rgba(0,0,0,0.1) inset;
/*添加一个范围=4px的小阴影;再添加一个范围=10px的内阴影;*/
}
.effect:before,.effect:after {
content: '';
background: #f00;
position: absolute;
z-index: -2;
top:50%; bottom:; left:30px; right:30px;
/*设置四个方向值,然后浏览器自动计算盒子的大小;*/
box-shadow: 0px 0px 20px rgba(0,0,0,0.8);
/*设置添加的盒子的阴影;*/
border-radius: 100px/10px;
/*添加圆角:水平方向圆角大小是100px/垂直方向圆角大小是10px;*/
} /*翘边阴影*/
.box{
width:980px;
height:auto;
clear:both;
overflow:hidden;
margin:20px auto;
}
.box li{
position: relative;
/*以li为定位基准;*/
width:300px;
height:210px;
float:left;
background: #fff;
margin:20px 10px;
border:2px solid #efefef;
box-shadow: 0px 1px 4px rgba(0,0,0,0.27);
/*给li添加一个小小的阴影;*/
}
.box li img {
display: block;
width:290px;
height:200px;
margin:5px;
}
.box li:before{
content: '';
position: absolute;
z-index: -3;
width:90%;
height:80%;
left:18px;
bottom:8px;
box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
transform:skew(-12deg) rotate(-4deg);
/*图形向右倾斜12度;并逆时针旋转4度;*/
}
.box li:after{
content: '';
position: absolute;
z-index: -4;
width:90%;
height:80%;
right:18px;
bottom:8px;
box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
transform:skew(12deg) rotate(4deg);
/*图形向左倾斜12度;并顺时针旋转4度;*/
}

之前在PS里用灰色图层叠加在其他图层下面做特殊阴影效果,相同思路应用到CSS里了。赞!

知识点补充↓↓↓↓↓↓↓

 1.box-shadow--添加一个或多个阴影
>1.功能:box-shadow--添加一个或多个阴影;
>2.语法:box-shadow:h-shadow v-shadow blur spread color inset;
>3.参数:
>>:h-shadow(必需):水平阴影的位置;允许负值;
>>:v-shadow(必需):垂直阴影的位置;允许负值;
>>:blur(可选):模糊距离;
>>:spread(可选):阴影的尺寸;
>>:color(可选):阴影的颜色;
>>:inset(可选):将外部阴影(outset)改为内部阴影;
>4.浏览器:IE9+/FF4 2.:before与:after
>1.:before选择器:在被选元素的内容前面插入内容;
>2.:after选择器:在被选元素的内容后面插入内容;
>3.说明:需要使用content属性来指定要插入的内容;
>4.浏览器:IE8及更早版本中的:after,必须使用<!DOCTYPE>; 3.transform--
>1.功能:向元素应用2D或3D转换
>1.语法:transform:none | transform-functions
>2.参数:
>>:skew(x-angle,y-angle):定义沿着X和Y轴的2D倾斜转换;
>>:skewX(angle):定义沿着X轴的2D倾斜转换;
>>:skewY(angle):定义沿着Y轴的2D倾斜转换;