渐变的作用是可以设置一些复杂的背景颜色,实现从一个颜色向其他颜色过渡的效果。
渐变是图片,通过background-image设置。
线性渐变
这节学习线性渐变。
background-image:linear-gradient(颜色1,颜色2)
功能:从颜色1 向颜色2过渡。
看代码,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>按钮</title>
<style>
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(red,yellow);
}
</style>
</head>
<body>
<div class="box1"></div>
</div>
</body>
</html>
默认是从上往下渐变,如果想改变渐变的方向,则在颜色1前指定方向
方向
<style>
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(to right,red,yellow);
}
</style>
也可以用角度来指定方向。
<style>
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(45deg,red,yellow);
}
</style>
还可以用多少圈来写,
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(0.2turn,red,yellow);
}
</style>
这个turn表示多少圈,0.2turn就是旋转0.2圈。
多个颜色
此外,渐变可以写很多个颜色。
<style>
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(red,yellow,orange,green);
}
</style>
分布
这里有没有发现,总共是写了4个颜色,那么哪个位置对应这四个颜色是均匀分布的。
实际上这个分布是可以设置的。
<style>
.box1{
width: 200px;
height: 200px;
background-image: linear-gradient(red 50px ,yellow 100px);
}
</style>
这里写的50px和100px对应的是红色和黄色的位置,由于红色是第一个颜色,所以0~50px都是红色,50px ~100px是红色到黄色的过渡,100px ~200px是黄色。
这里由于我只有两种颜色,我设置了颜色分别在50px和100px,所以,50以上和100以下都是纯色。如果我用的是重复线性渐变,会有啥不同呢?
重复线性渐变
repeating-linear-gradient()
<style>
.box1{
width: 200px;
height: 200px;
background-image: repeating-linear-gradient(red 50px ,yellow 100px);
}
</style>