渐变属性
渐变(gradient)是CSS3新增的属性,可以让两个或多个指定的颜色平稳的过渡,CSS3定义了两种过渡效果,线性过渡和径向过渡。
- 线性渐变 linear-gradient():由一个方向向另一个方向直线的过渡
- 径向渐变 radial-gradient():由中心区域向外的圆形渐变
线性渐变
为了创建一个线性渐变,你必须至少定义两种颜色节点。颜色节点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>CSS3 渐变</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
div{width: 500px;height: 200px;border: 1px solid black;}
</style>
</head>
<body>
<div style="background: linear-gradient(red,yellow);">CSS3 线性渐变 垂直方向</div>
<div style="background: linear-gradient(90deg,red,yellow);">CSS3 线性渐变 水平方向</div>
<div style="background: linear-gradient(90deg,red,yellow,pink);">CSS3 线性渐变 三种颜色 水平方向</div>
<div style="background: linear-gradient(90deg,red,yellow 40%,pink);">CSS3 线性渐变 黄色40%长度开始 水平方向</div>
</body>
</html>
通常用background属性来设置背景颜色渐变,使用background-image也可以,但是background-color不行。
径向渐变
径向渐变由它的中心定义。为了创建一个径向渐变,你也必须至少定义两种颜色节点。颜色节点即你想要呈现平稳过渡的颜色。同时,你也可以指定渐变的中心、形状(圆形或椭圆形)、大小。默认情况下,渐变的中心是center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>CSS3 渐变</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
div{width: 500px;height: 200px;border: 1px solid black;}
</style>
</head>
<body>
<div style="background: radial-gradient(red,yellow);">CSS3 径向渐变 椭圆形</div>
<div style="background: radial-gradient(circle,red,yellow);">CSS3 径向渐变 圆形</div>
<div style="background: radial-gradient(red,yellow,pink);">CSS3 径向渐变 三种颜色 椭圆</div>
<div style="background: radial-gradient(red 5%,yellow 40%,pink 60%);">CSS3 径向渐变 颜色不均等分布</div>
</body>
</html>
以上属性设置的是单次的渐变效果,重复效果可以使用repeating-linear-gradient()和repeating-radial-gradient()设置线性渐变和径向渐变