css如何绘制内凹圆角UI

收到的需求是什么?

如下图,底部tabbar中间按钮部分。
如何用css画出来呢?
在这里插入图片描述

用到的css的知识

  • radial-gradient:径向渐变
    没听过径向渐变?? 那好吧! 给你推荐个好网站百度(手动狗头)
  • 先画一个类似的图,然后对比代码进行分析

在这里插入图片描述
上图对应的html、css如下:

 <style type="text/css">
    .box {
      width: 600px;
      height: 50px;
      background: radial-gradient(circle at top left, red 30px, green 31px) right, 
                  radial-gradient(circle at top right, red 30px, green 31px) left;
      background-size: 50% 100%;
      background-repeat: no-repeat;
    }
  </style>
  <title>内凹圆角</title>
</head>
<body>
  <div class="box"></div>
</body>

如上图,可以看到其实内凹圆角并不是”真正的内凹“,而是通过自身与背景颜色的差别来实现所谓的内凹。
可以看到上面代码只有radial-gradient这个很陌生。那么我们···

  • 循序渐进式理解
  1. 最简单的径向渐变
    在这里插入图片描述

颜色值数量可以自己写,由内向外扩散。

 background: radial-gradient(red,green,blue);
  1. 改变渐变效果:circle
    在这里插入图片描述
 background: radial-gradient(circle ,red,green,blue);
  1. 改变渐变起始位置
    在这里插入图片描述
    如下:将绿色距离内部30px开始
  background: radial-gradient(circle ,red,green 30px,blue);
  1. 取消平滑过渡效果
    在这里插入图片描述
    这样理解:颜色A从0px到60px,颜色B从30px到60px,颜色C从60px到90px。这样子颜色范围就成了绝对的,没有过渡效果。
      background: radial-gradient(circle ,red,red 30px ,green 30px,green 60px, blue 60px);
  1. 改变渐变起始位置
    在这里插入图片描述
    circle at top right 意思为右上角。
    circle at top 意思为顶部。
    当然也可以这样:circle at 30px 10px
    渐变位置可以随意改变。
background: radial-gradient(circle at top right ,red,red 30px ,green 30px,green 60px, blue 60px);
  1. 最后在那么一变
    是不是出来了呀~
    在这里插入图片描述
 background: radial-gradient(circle at top ,red,red 30px, blue 30px);

最后的话

当然了,方法不止这一种。
有其他好的方法可以推荐下哈,告辞。

个人博客:https://yuanxiaoshen.com/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值