zoukankan      html  css  js  c++  java
  • 线性渐变、径向渐变以及圆锥渐变

    一、linear-gradient:线性渐变

      线性渐变的方向是一条直线,可以是任何角度,语法如下:

    background: linear-gradient(direction, color-stop1, color-stop2, ...);

      如下代码的线性渐变:

    .container {
         200px;
        height: 200px;
        background: -webkit-linear-gradient(left top, red, orange, yellow, green, blue, indigo, violet);
    }

      结果为:

      重复线性渐变:repeating-linear-gradient

      语法为:

    background: repeating-linear-gradient(angle | to side-or-corner, color-stop1, color-stop2, ...);

      比如如下代码:

    .container {
         200px;
        height: 200px;
        background: repeating-linear-gradient(45deg, red, blue 7%, green 10%);
    }

      结果如下图所示:

     二、radial-gradient : 径向渐变

      径向渐变不同于线性渐变,线性渐变是从“一个方向”向“另一个方向”的颜色渐变,而径向渐变是从“一个点”向四周的颜色渐变。其语法如下:

    background: radial-gradient(shape size at position, start-color, ..., last-color);

       如下代码:

    .container {
         200px;
        height: 200px;
        background: radial-gradient(closest-side at 60% 55%, blue, green, yellow);
    }

      结果如下:

        重复径向渐变:repeating-radial-gradient

      语法为:

    background: repeating-radial-gradient(shape size at position, start-color, ..., last-color);

     

       如下代码:

    .container {
         200px;
        height: 200px;
        background: repeating-radial-gradient(red, yellow 10%, green 15%);
    }

      结果如下图所示:

    三、conic-gradient:圆锥渐变

      语法:

    background: conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )

      锥形渐变由3部分组成:

    • 起始角度
    • 中心位置
    • 角渐变断点

      其中起始角度和中心位置都是可以省略的。

      最简单的锥形渐变用法,圆锥渐变不设置起始点时,起始点是图形中心,然后以顺时针方向绕中心实现渐变效果。代码如下:

    .container {
        background: conic-gradient(white, deepskyblue);
    }

      效果图如下:

       将渐变起始角度改成45度,中心点位置移动到相对于左边20%,相对于上面50%的地方,代码如下:

    .container {
        background: conic-gradient(from 45deg at 20% 50%, white, blue);
    }

      效果图如下:

       锥形渐变的颜色断点,使用的是角度值角渐变断点中设置的角度值是一个相对角度值,最终渲染的角度值是和起始角度累加的值

       如下代码中:此时deepskyblue实际渲染的坐标角度是90deg(45deg + 45deg)。

    .container {
        background: conic-gradient(from 45deg, white, deepskyblue 45deg);
    }

      效果图如下所示:

       

    锥形渐变中颜色断点角度值和百分比值没有什么区别,两者可以互相转换,一个完整的旋转总共360度,因此,比如45deg等同于12.5%。
    所以以下两行代码是等价的:
    .container {
        background:conic-gradient(white, blue 45deg, white) ;
        /*background:conic-gradient(white, blue 12.5%, white) ;*/
    }
     
      锥形渐变可以非常方便地实现饼图效果。
      渐变断点有个特性,如果后面的渐变断点位置值比前面的渐变断点位置值小的时候,后面的渐变断点的位置值会按照前面较大的渐变断点位置值渲染

      如果我们想要渐变颜色界限分明,只要设置起始渐变位置为0%就可以了
      比如如下代码:
    .container {
        border-radius: 50%;
        background: conic-gradient(yellowgreen 40%, gold 0deg 75%, blue 0deg);
    }
      效果如下所示:

      还可以使用径向渐变和锥形渐变实现取色盘,代码如下:
    .container{
        border-radius: 50%;
        background: radial-gradient(closest-side, gray, transparent),
        conic-gradient(red, magenta, blue, aqua, lime, yellow, red);
    }

      效果如下所示:

       

      重复圆锥渐变:repeating-conic-gradient

      代码如下所示:

    .container {
        border-radius: 50%;
        background: repeating-conic-gradient(deeppink 0 15deg, yellowgreen 0 30deg);
    }

      结果如下所示:

  • 相关阅读:
    c++求最大公约数、最小公倍数
    五个简单的shell脚本
    微信小程序slot(一)
    小程序详解子传父
    小程序封装组件详解父传子
    小程序生命周期详解
    小程序之confirm-type改变键盘右下角的内容和input按钮详解
    小程序之按钮你不知道的v2
    小程序image图片缩小不变形
    小程序之navigator跳转方式
  • 原文地址:https://www.cnblogs.com/gg-qq/p/14360919.html
Copyright © 2011-2022 走看看