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

效果:

 

转载于:https://www.cnblogs.com/xiaofenguo/p/10637168.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值