linear-gradient,radial-gradient 渐变

一、渐变效果

  ->  线性渐变

方法:

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

默认的是从上到下的线性渐变

#grad {
  height: 200px;
  background-image: linear-gradient(to right, red , yellow);
}

从左到右的线性渐变,由红色过渡到蓝色

direction:to bottom、to top、to right、to left、to bottom right,等等

                   也可以使用角度angle(如:7deg),在渐变规则中,0deg代表由左到右的渐变,90deg为从上到下的渐变。

transparent:使用透明度,用rgba( )定义颜色

#grad {
  background-image: linear-gradient(to left, rgba(255,0,0,0), rgba(255,0,0,1));
}

从右到左的线性渐变,由完全透明过渡到不透明红色。

repeating-linear-gradient( ) 重复的线性渐变

#grad {
  /* 标准的语法 */
  background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
}

从上到下的重复线性渐变,由红色过渡黄色至10%,黄色过渡绿色至20%,重复进行(5次)。

soft-line:柔性分界。不写则默认50%,表示两种颜色过渡的柔和边界。

                  ->     background:linear-gradient(angle,start-color,soft-line,end-color);

hard-line:  硬性分割,无渐变分割。(用一条硬线分割两种颜色,完全消除渐变效果)

#grad{background: linear-gradient(to right, red 50%, pink 50%);}

▲在色标后面紧接着写上百分比,不必须要50%才能达到完全消除渐变效果。

我是这么理解的,开始颜色后的百分比代表起始颜色的颜色比例。 结束颜色后面的百分比,代表着从当前百分比的位置之后都是无渐变的结束颜色。

那么开始的百分比->结束的百分比,这之间的比例就是两个颜色之间的柔和边界。

所以只要开始后的百分比>=结束的百分比,就不会有渐变效果,如下:

#grad{
     background: linear-gradient(to right, red,red 33.3333%, pink 30%, pink 66.666%, yellow 60%);
}

 ▲相当于开始和结尾各省略了一个red 0 和yellow 100%,0~33.33%是红色,33.33%~66.66%是粉色,66.66%~100%是黄色.

background: linear-gradient(to right,red 33.3333%, pink 33.3333%, yellow 60%);  =>

如果渐变要配合背景图使用,渐变要写在背景图前面: background:linear-gradient( ),url( );

  ->   径向渐变

方法:默认的是椭圆形的颜色结点均匀分布

background-image: radial-gradient(shape size at position, start-color, ..., last-color);
#grad {
  background-image: radial-gradient(red 5%, yellow 15%, green 60%);
}

▲ 从中心扩散,不均匀红色占比5%,黄色15%,绿色60%

shape: circle(圆形) elipse(椭圆,默认)

其他参数与线性渐变基本一致,包括硬线实现,配合背景图的不再重复。

posted @ 2020-05-11 15:59  以深  阅读(483)  评论(0编辑  收藏  举报
TOP