border-radius實現圓弧陰影效果


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;
            }

效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM