CSS实现任意角度扇形

  参考之前思路:conic-gradient:圆锥形渐变存在兼容性问题,无法使用,要不然其实实现效果也蛮好的

复制代码
<div class="precoss">
    <div class="skew"></div>
</div>

.precoss{
  width 26px
  height 26px
  border:2px solid rgba(22,143,202,1);
  border-radius:50%;
  margin-right 10px
  position relative
  overflow hidden
  font-size 0
  .skew{
    position absolute
    top -1px
    left -1px
    width 28px
    height 28px
    border-radius: 50%;
    background: conic-gradient(#168fca 0, #168fca 50%, #fff 50%, #fff 100%);
  }
}
复制代码

  所以放弃,只能自己手写,参考第2种思路

复制代码
<div class="precoss" v-if="item.progress <= 50">
  <div class="skew1"></div>
  <div  class="skew2" :style="{'transform': `rotate(${item.progress*3.6}deg)`}"></div>
</div>
<div class="precoss" v-else>
  <div class="skew1" :style="{'transform': `rotate(${(item.progress - 50)*3.6}deg)`}"></div>
  <div  class="skew2 per50"></div>
</div>
复制代码

  css如下

复制代码
.precoss{
  width 30px
  height 30px
  border-radius 50%
  background #168fca
  position relative
  margin-right 10px
  .skew1{
    background-color: #ffffff;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    clip:rect(0,13px,auto,0);
    position: absolute;
    top 2px
    left 2px
  }
  .skew2{
    background-color: #ffffff;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    clip:rect(0,auto,auto,13px);
    position: absolute;
    top 2px
    left 2px
    &.per50{
      background-color: #168fca;
      width: 28px;
      height: 28px;
      top 1px
    }
  }
}
复制代码

  因为存在超过50%情况,所以简单的做了一个判断。

  效果:

posted @   古兰精  阅读(3476)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-05-15 elementUI table使用:实现前端分页、表头禁用多选、分页保持选中状态、最多选中N行、el-table表格selection设置复选框禁止选中某些行、实现行拖拽排序
点击右上角即可分享
微信分享提示