背景渐变

渐变是新的图像类型,在 CSS3 中添加。作为图像,使用 background-image 属性或 background 简写设置渐变。

有两种类型的梯度函数,线性和径向。每种类型都有一个非重复变体和一个重复变体:

  • linear-gradient()
  • repeating-linear-gradient()
  • radial-gradient()
  • repeating-radial-gradient()

线性梯度()

linear-gradient 具有以下语法

background: linear-gradient( <direction>?, <color-stop-1>, <color-stop-2>, ...);
含义
<direction> 可能是像 to topto bottomto rightto left 这样的论点; 或一个角度0deg90deg …. 角度从顶部开始,顺时针旋转。可以以 deggradradturn 指定 。如果省略,则梯度从顶部流向底部
<color-stop-list> 颜色列表,可选地按每个百分比或长度跟随以显示它。例如,yellow 10%rgba(0,0,0,.5) 40px#fff 100% ……

例如,这会创建一个从右侧开始并从红色到蓝色过渡的线性渐变

.linear-gradient {
  background: linear-gradient(to left, red, blue); /* you can also use 270deg */
}

你可以通过声明水平和垂直起始位置来创建 diagonal 渐变。

.diagonal-linear-gradient {
  background: linear-gradient(to left top, red, yellow 10%);
}

通过用逗号分隔,可以在渐变中指定任意数量的色标。以下示例将创建一个具有 8 个色标的渐变

.linear-gradient-rainbow {
  background: linear-gradient(to left, red, orange, yellow, green, blue, indigo, violet)
}

径向梯度()

.radial-gradient-simple {
  background: radial-gradient(red, blue);
}

.radial-gradient {
  background: radial-gradient(circle farthest-corner at top left, red, blue);
}
含义
circle 渐变的形状。值为 circleellipse,默认为 ellipse
farthest-corner 描述结束形状必须有多大的关键字。值是 closest-sidefarthest-sideclosest-cornerfarthest-corner
top left 设置渐变中心的位置,与 background-position 相同。

重复渐变

重复渐变函数采用与上述示例相同的参数,但在整个元素的背景中平铺渐变。

.bullseye {
  background: repeating-radial-gradient(red, red 10%, white 10%, white 20%);
}
.warning {
  background: repeating-linear-gradient(-45deg, yellow, yellow 10%, black 10%, black 20% );
}
含义
-45deg 角度单位 。角度从顶部开始,顺时针旋转。可以以 deggradradturn 指定
to left 渐变方向,默认为 to bottom。语法:to [y-axis(top OR bottom)] [x-axis(left OR right)] ie to top right
yellow 10% 颜色,可选地后跟百分比或长度以显示它。重复两次或更多次。

注意,可以使用 HEX,RGB,RGBa,HSL 和 HSLa 颜色代码代替颜色名称。出于说明的目的使用颜色名称。另请注意,径向渐变语法比线性渐变复杂得多,此处显示的是简化版本。有关完整说明和规格,请参阅 MDN 文档