
上方的白色区域为曲线阴影效果,下面的三个图片为翘边阴影效果
细看,我们可以看出,其实曲线阴影是由两个图像的边框阴影重叠而成,只是呈现曲线边框的图像被覆盖在图层的下面,下面我们通过代码演示:
<html>
<head lang="en">
<meta charset="UTF-8">
<title>曲线阴影与翘边阴影title>
head>
<body>
<div class="wrap effect">
<h1>帅气的胖麦h1>
div>
<ul class="box">
<li><img src="imgs/img6.jpg" alt=""/>li>
<li><img src="imgs/img7.jpg" alt=""/>li>
<li><img src="imgs/img8.jpg" alt=""/>li>
ul>
body>
html>
body{
font-family: Arial;
font-size: 20px;
}
body,ul{
margin: 0;
padding: 0;
list-style: none;
}
.wrap{
height: 220px;
width: 40%;
margin: 50px auto;
background: #fff;
}
.wrap h1{
text-align: center;
font-size: 20px;
line-height: 220px;
}
.effect{
box-shadow: 0px 1px 5px rgba(0,0,0,0.6) ,0 0 40px rgba(0,0,0,0.3) inset;
-webkit-box-shadow: 0px 1px 5px rgba(0,0,0,0.6),0 0 40px rgba(0,0,0,0.3) inset;
-moz-box-shadow: 0px 1px 5px rgba(0,0,0,0.6),0 0 40px rgba(0,0,0,0.3) inset;
-ms-box-shadow: 0px 1px 5px rgba(0,0,0,0.6),0 0 40px rgba(0,0,0,0.3) inset;
-o-box-shadow: 0px 1px 5px rgba(0,0,0,0.6),0 0 40px rgba(0,0,0,0.3) inset;
}
这里使用到box-shadow:inset这个属性,使图层内部生成阴影,在这里我们需要注意到浏览器的兼容问题;
position: relative;
.effect:before{
content:'';
background: #f00;
position: absolute;
/*直接设置宽高*/
/*width: ;*/
/*height: ;*/
/*这四个属性必须设置,缺一不可,否则盒子无法绘制*/
top: 50%;
bottom: -1px;
left: 10px;
right: 10px;
box-shadow: 0 0 20px rgba(0,0,0,0.8);
-webkit-box-shadow: 0 0 20px rgba(0,0,0,0.8);
-moz-box-shadow: 0 0 20px rgba(0,0,0,0.8);
-ms-box-shadow: 0 0 20px rgba(0,0,0,0.8);
-o-box-shadow: 0 0 20px rgba(0,0,0,0.8);
border-radius: 120px/10px;
}
z-index: -1;
background: transparent;
.effect:before,.effect:after{
...
}