1 原理 利用border-radius實現一個圓弧邊的矩形,並添加box-shadow,然后放在目標元素的下方
demo:
html
<div class="demo1"></div>
css
.demo1{ width: 500px; height: 200px; margin: 30px auto; position: relative; background-color: #fff; box-shadow: 0px 0px 3px rgba(0,0,0,0.3),0px 0px 3px rgba(0,0,0,0.2) inset; -webkit-box-shadow:0px 0px 3px rgba(0,0,0,0.3),0px 0px 3px rgba(0,0,0,0.2) inset; -moz-box-shadow:0px 0px 3px rgba(0,0,0,0.3),0px 0px 3px rgba(0,0,0,0.2) inset; -o-box-shadow:0px 0px 3px rgba(0,0,0,0.3),0px 0px 3px rgba(0,0,0,0.2) inset; } .demo1:after,.demo1:before{ position: absolute; content: ''; top: 50%; bottom: 0px; left: 10px; right: 10px; z-index: -1; border-radius: 100px/10px; box-shadow: 0px 0px 20px rgba(0,0,0,0.6); -webkit-box-shadow: 0px 0px 20px rgba(0,0,0,0.6); -moz-box-shadow: 0px 0px 20px rgba(0,0,0,0.6); -o-box-shadow: 0px 0px 20px rgba(0,0,0,0.6); }
元素的before after偽元素重貼在一起,加深陰影效果,border-radius:100px/10px;表示水平半徑是100px,垂直半徑是10px
,border-radius的完整寫法:border-radius:100px 100px 100px 100px/10px 10px 10px 10px;“/”前的四個數值表示圓角的水平半徑,后面四個值表示圓角的垂直半徑
demo2:
.demo2{ width: 480px; height: 150px; margin: 30px auto; background-color: red; border-radius: 100px/10px; }
效果:
實心半圓:
.demo3{ height: 100px; width: 50px; margin: 30px auto; background-color: red; border-radius: 0px 50px 50px 0; }
效果
翹邊陰影
html
<div class="demo10"> <ul> <li><img src="images/1.jpg"></li> <li><img src="images/1.jpg"></li> <li><img src="images/1.jpg"></li> </ul> </div>
css
.demo10{ width: 1030px; } ul:after{ display: block; content: ''; clear: both; } ul li{ float: left; } .demo10 ul li{ padding: 10px; border:1px solid #eee; margin-right: 20px; background-color: #fff; box-shadow: 0px 0px 20px rgba(0,0,0,0.1) inset; -webkit-box-shadow: 0px 0px 20px rgba(0,0,0,0.1) inset; -moz-box-shadow: 0px 0px 20px rgba(0,0,0,0.1) inset; -o-box-shadow: 0px 0px 20px rgba(0,0,0,0.1) inset; position: relative; } .demo10 ul li:after{ position: absolute; content: ""; width: 90%; left: 15px; height: 70%; bottom: 12px; z-index: -1; background-color: transparent; box-shadow: 0px 0px 25px rgba(0,0,0,.5); -webkit-box-shadow: 0px 0px 25px rgba(0,0,0,.5); -moz-box-shadow: 0px 0px 25px rgba(0,0,0,.5); -o-box-shadow: 0px 0px 25px rgba(0,0,0,.5); transform:rotate(-5deg) translate(-10px,0); -webkit-transform:rotate(-5deg) translate(-10px,0); -moz-transform:rotate(-5deg) translate(-10px,0); -o-transform:rotate(-5deg) translate(-10px,0); } .demo10 ul li:before{ position: absolute; content: ""; width: 90%; right: 15px; height: 70%; bottom: 12px; z-index: -1; background-color: transparent; box-shadow: 0px 0px 25px rgba(0,0,0,.5); -webkit-box-shadow: 0px 0px 25px rgba(0,0,0,.5); -moz-box-shadow: 0px 0px 25px rgba(0,0,0,.5); -o-box-shadow: 0px 0px 25px rgba(0,0,0,.5); transform:rotate(-5deg) translate(-10px,0); -webkit-transform:rotate(5deg) translate(10px,0); -moz-transform:rotate(5deg) translate(10px,0); -o-transform:rotate(5deg) translate(10px,0); } .demo10 ul li img{ width: 300px; height: 200px; }
效果: