HTML – 渐变

通过渐变可以设置一些复杂的背景颜色,可以实现从一个颜色向其他颜色过渡的效果。

特别值得注意的是 渐变是图片,需要通过background-image来设置。

一、线性渐变

1、linear-gradient

线性渐变,颜色沿着一条直线发生变化,默认是垂直方向(从上往下)。

linear-gradient(red, yellow); // 红色在开头,黄色在结尾,中间是过渡区域。

线性渐变的开头可以指定一个渐变的方向,如下:

to left
to right
to bottom
to top
deg 表示度数
turn 表示旋转圈数,开始点是在底部,然后绕顺时针转(正值)

渐变可以同时指定多个颜色,多个颜色默认情况下平均分配,也可以手动指定渐变的分布情况。

background-image: linear-gradient(90deg, red, yellow);

2、repeating-linear-gradient()

可以平铺的线性渐变,且通过repeating-linear-gradient设置的背景颜色不会受到background-repeat属性的影响,即使通过background-repeat设置背景图片为no-repeat,但是背景颜色还是会重复。

background-image: repeating-linear-gradient(red, yellow, #bfa);
background-image: repeating-linear-gradient(red 50px, yellow 100px);

二、径向渐变

radial-gradient() 径向渐变(放射性的效果),默认情况下径向渐变的形状根据元素的形状来计算的,如:

正方形 --> 圆形

长方形 --> 椭圆

也可以手动指定径向渐变的大小,可选值如下:

  • circle,圆形
  • ellipse,椭圆

也可以指定渐变的位置,语法如下:

radial-gradient(大小 at 位置, 颜色 位置, 颜色 位置,……);

大小的可选值如下:

  • circle,圆形;
  • ellipse,椭圆;
  • closest-side,近边;
  • closest-corner,近角;
  • farthest-side,远边;
  • farthest-corner,远角;

位置的可选值如下:

top、right、left、center、bottom……

background-image: radial-gradient(closest-side at 100px 100px, red, yellow);