zoukankan      html  css  js  c++  java
  • CSS实现圆形进度条及conic-gradient学习

    一、conic-gradient

      conic-gradient:圆锥形渐变,它的两个兄弟line-gradient(线性渐变)radial-gradient(径向渐变),算是最早认识的渐变属性。

    1、特点:圆锥渐变的起始点是图形中心,渐变方向以顺时针方向绕中心旋转实现渐变效果。

    2、兼容性:

      根据 can i use,目前只在chrome 69及以上支持。

      可以使用polyfill垫片库,解决兼容性问题。垫片库会根据css语法,生成对应的圆锥渐变图案,并且转化为 base64 代码。

    // 需加入的js库
    <script src="//cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
    <script src="//leaverou.github.io/conic-gradient/conic-gradient.js"></script>

      实测,不能解决兼容性问题

    3、案例

    <section class="color1"></section>
    <section class="color2"></section>
        /* 起始处与结尾处衔接不够自然 */
        .color1 {
           200px;
          height: 200px;
          border-radius: 50%;
          background: conic-gradient(red, orange, yellow, green, teal, blue, purple)
        }
         /* 起始处与结尾处衔接不够自然,解决:在结尾加入开始的颜色 */
        .color2 {
           200px;
          height: 200px;
          border-radius: 50%;
          background: conic-gradient(red, orange, yellow, green, teal, blue, purple, red);
        }

        <section class="pie"></section>
    
        .pie {
           200px;
          height: 200px;
          border-radius: 50%;
          /* 百分比 写法一 */
           background: conic-gradient(pink 0, pink 30%, yellow 30%, yellow 70%, lime 70%, lime 100%); 
          /* 写法二 不支持 chrome69 */
          /* background: conic-gradient(pink 0 30%, yellow 0 70%, lime 0 100%); */
        }

    二、圆形进度条

     

    具体实现步骤:

    1、先画一个大圆,底色为#ffffff;

    <div class="third"> </div>
    .third{
        background-color: #FFFFFF;
         182px;
        height: 182px;
        border-radius: 50%;
        position: relative;
    }

    2、再画2个半圆:一个浅绿色的半圆和一个白色的半圆

    <div class="third">
        <div class="second"></div>
        <div class="first"></div>
    </div>
    .second{
        background-color: #6ED4BF;
         182px;
        height: 182px;
        border-radius: 50%;
        clip:rect(0,91px,auto,0);
        position: absolute;
    }
    .first{
        background-color: #FFFFFF;
         182px;
        height: 182px;
        border-radius: 50%;
        clip:rect(0,auto,auto,91px);
    }

    3、将second圆根据百分比旋转

    .second{
        background-color: #6ED4BF;
         182px;
        height: 182px;
        border-radius: 50%;
        clip:rect(0,91px,auto,0);
        position: absolute;
        transform: rotate(30deg);  //旋转30度
    }

    4、最后再画一个小圆,写上百分比

    <div class="third">
              <div class="second"></div>
              <div class="first"></div>
              <div class="mask">
                   <span>68%</span>
              </div>
    </div>
    
    .third *{
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
    .mask>span{
        display: block;
        font-size: 44px;
        color: white;
        line-height: 150px;
    }

     

  • 相关阅读:
    project euler 开坑
    hdu 5382 GCD?LCM!
    Leetcode 557. 反转字符串中的单词 III
    Leetcode 344. 反转字符串
    Leetcode 345. 反转字符串中的元音字母
    008.C++类改写模板类
    007.C++构造函数
    006.C++头文件
    02.树的序列化与反序列化(C++)
    Leetcode 94. 二叉树的中序遍历
  • 原文地址:https://www.cnblogs.com/goloving/p/12895689.html
Copyright © 2011-2022 走看看