用css+html代码实现半圆凹槽+阴影

使用情景:要实现一个卡券类的半圆凹槽,但是需要整体加阴影,因为整体的高度不固定,所以无法让UI直接切整体边缘图,只能自己写,效果如下:

 1.实现思路

左侧两个元素:一个正常底色覆盖,加阴影;另一个放大一点并用filter: blur属性做虚化

右侧两个元素:同理

2.代码如下:

html:

<div class="parent-wrap">  

    <!-- 虚线及凹槽 -->

    <div class="line-circle-wrap">

        <div id='leftCover'></div>

        <hr class="line" />

        <div id='rightCover'></div>

    </div>

</div>

css:

.parent-wrap{

  box-shadow: 2px 4px 6px 0px rgba(34,91,128,0.19);

  // 虚线及凹槽  

  .line-circle-wrap{

    width: 100%;

    height: 24px;

    padding: 0 16px;

    position: relative;

    display: flex;

    align-items: center;

    .line{

      width: 100%;

      border: 0 none;

      border-top : 1.4px dotted rgba(160, 175, 205, 0.6);

    }

    &::before, &::after{

      content: ''

    }

    &::before, &::after, #leftCover, #rightCover {

      position: absolute;

      left: -6px;

      top: 0;

      bottom: 0;

      margin: auto;

      width: 12px;

      height: 12px;

      border-radius: 50%;

      background-color: #F3F5FB;

      z-index: 1;

      box-shadow: inset -6px 2px 6px -4px rgba(34,91,128,0.19);

    }

    &::after, #rightCover{

      left: inherit;

      right: -6px;

      // box-shadow: inset 22px 7px 9px -16px rgba(34,91,128,0.19);

      box-shadow: inset 4px 1px 4px 0px rgba(34,91,128,0.19);

    }

    #leftCover, #rightCover{

      box-shadow: none;

      width: 24px;

      height: 24px;

      filter: blur(5px);

      z-index: 2;

    }

    #leftCover{

      left: -20px;

    }

    #rightCover{

      right: -20px;

      top: -10px;

    }

  }

}  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值