19-渐变背景

197 阅读3分钟

一、线性渐变(向下/向上/向左/向右/对角线)

使用background-image: linear-gradient实现渐变背景效果

  • css语法
  • 方向: 在关键字 to 后面加上 top、bottom、right、left 中的某一个关键字或多个关键字。
background-image: linear-gradient( 方向/角度 , 颜色1,颜色2,颜色3....);

从上到下(默认)

background-image: linear-gradient(#FF0000,#FFF200, #1E9600);

chrome_0j8PrdSNWV.png

从下到上

background-image: linear-gradient(to top, #FF0000,#FFF200, #1E9600);

chrome_kMVEyguR0P.png

从左到右

background-image: linear-gradient(to right, #FF0000,#FFF200, #1E9600);

从右到左

background-image: linear-gradient(to left, #FF0000,#FFF200, #1E9600);

从左上到右下

当然我们可以使用多个关键字,例如 to bottom right ,表示从左上到右下结束。

background-image: linear-gradient(to right bottom , #FF0000,#FFF200, #1E9600);

二、使用角度来定义方向

我们都知道在一个平面上角度只有360度,就是一个圆。

使用角度来取代预定义的方向(向下、向上、向右、向左、向右下等等)。值 0deg 等于向上(to top)。值 90deg 等于向右(to right)。值 180deg 等于向下(to bottom)。

我们填的是终点的的角度,起点为对角线的角度

chrome_eQF3FpQsIW.png 例如:表示从起点从225度到45度结束的渐变。

background-image: linear-gradient(45deg, #FF0000,#FFF200, #1E9600);

chrome_7p8vJMgNmZ.png

平铺的线性渐变

当然颜色还可以使用rgb模式,这样就可以使用透明度了。
例如:

background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));

chrome_f7Jtlp7y0B.png

repeating-linear-gradient() 函数用于重复线性渐变

例如:
从左下角开始绘制渐变,前20像素是橙色,此后直至30像素的位置过渡到红色,然后直至40像素的位置再过渡到紫色。绘制完这个渐变后,浏览器会像平铺图像那样把这个渐变铺满整个背景。

background-image: repeating-linear-gradient(45deg, #F27121 20px, #E94057 30px, #8A2387 40px);

chrome_8KmysW9i3o.png

三、径向渐变(由其中心定义)

径向渐变就是沿着圆周或者椭圆周向外扩散的渐变。有一种水波扩散的感觉。

我们通过 radial-gradient( ); 来定义一个径向的渐变。

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

shape 参数定义形状。它可接受 circle(圆) 或 ellipse(椭圆) 值。默认值为ellipse。

shape 为椭圆形,size 为最远角,position 为中心。

size 参数定义渐变的大小。它可接受四个值:

  • closest-side :从中心点向外扩展渐变,到离中心点最近的一边结束。
  • farthest-side :以离渐变中心点最远的那一边计算圆的半径
  • closest-corner :以离渐变中心点最近的元素顶角计算渐变的范围。
  • farthest-corner :以离渐变中心点最远的顶角计算圆的半径。

chrome_EqGpHAAQXW.png

均匀间隔的色标(默认)

例如:

 background-image: radial-gradient(#d63c21, #e0d865);

chrome_Ri3gZ0xHBi.png

当我改变为圆形,并换上合适的颜色

background-image: radial-gradient(circle, red, yellow, green);

chrome_Z7IMKyDZZC.png

设置径向渐变的中心点

用关键字 at 后面加上 position 属性支持的定位关键字和数值,指定渐变中心的位置。

调整大小和颜色百分比后
例如:

    .item1 {
        height: 150px;
        width: 150px;
        margin: 0 auto;
        background-image: radial-gradient(farthest-corner at 60% 55%, red, yellow, black);
    }

chrome_sS8TjCVkPx.png

这么好看的太阳你以后还会用照片吗?上面的例子是把中心点设置在元素的距离左上角(60% 55%)。并以 以离渐变中心点最远的顶角计算圆的半径。

平铺的径向渐变

例如:

background-image: repeating-radial-gradient(circle at 20% 40%,#eea2a2 20px, #57c6e1 20px, #b49fda 40px, #7ac5d8 40px, #b49fda 60px, #4F9C9C 60px, #57c6e1 80px, #99CCCC 80px, #eea2a2 100px);

chrome_oAQSQXhKyp.png