CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。
CSS3 定义了两种类型的渐变(gradients)
- 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
- 径向渐变(Radial Gradients)- 由它们的中心定义
线性渐变
- 从上到下(默认情况下)
<style>
#demo {
height: 200px;
background: linear-gradient(yellow, green);
}
</style>
<body>
<div id="demo"></div>
</body>
- 从左到右
<style>
#demo {
height: 200px;
background: linear-gradient(to right,yellow, green);
}
</style>
<body>
<div id="demo"></div>
</body>
- 对角
从左上角开始(到右下角)的线性渐变:
<style>
#demo {
height: 200px;
background: linear-gradient(to bottom right, green , yellow);
}
</style>
<body>
<div id="demo"></div>
</body>
使用角度
如果你想要在渐变的方向上做更多的控制,你可以定义一个角度,而不用预定义方向(to bottom、to top、to right、to left、to bottom right,等等)。
语法:
background: linear-gradient(angle, color-stop1, color-stop2);
实例:
background: linear-gradient(180deg, green, yellow);
使用多个颜色结点
实例:
background: linear-gradient(red, green, blue);
只需要在括号中添加相应的颜色就可以了,如果不设置将会默认均匀分布
background: linear-gradient(red 10%, green 85%, yellow 90%);
上述设置将会按照百分比进行分布
使用透明度(Transparency)
CSS3 渐变也支持透明度(transparency),可用于创建减弱变淡的效果。
为了添加透明度,我们使用 rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。
实例:
<style>
#demo {
height: 200px;
background: linear-gradient(to right, rgba(255,255,0,0), rgba(255,255,0,1));
}
</style>
<body>
<div id="demo"></div>
</body>
径向渐变
径向渐变由它的中心定义。
为了创建一个径向渐变,你也必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以指定渐变的中心、形状(原型或椭圆形)、大小。默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。
简单实例:
<style>
#demo {
height: 200px;
background: radial-gradient( green, yellow);
}
</style>
<body>
<div id="demo"></div>
</body>