CSS 渐变使您可以显示两种或多种指定颜色之间的平滑过渡。
CSS 定义了两种渐变类型:
- 线性渐变(向下/向上/向左/向右/对角线)
- 径向渐变(由其中心定义)
参考文档
- CSS 线性渐变 https://www.w3school.com.cn/css/css3_gradients.asp
- CSS 径向渐变 https://www.w3school.com.cn/css/css3_gradients_radial.asp
- MDN
linear-gradient()
https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient
目录
- 线性渐变
- 从上到下(默认)
- 从左到右
- 对角线
- 使用角度
- 使用多个色标
- 使用透明度
- 方向控制
- 完整代码
线性渐变
语法
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
从上到下(默认)
background-image: linear-gradient(red, yellow);
从左到右
background-image: linear-gradient(to right, red, yellow);
对角线
从左上角 到右下角
background-image: linear-gradient(to bottom right, red, yellow);
使用角度
-90deg
相当于从右向左
background-image: linear-gradient(-90deg, red, yellow);
使用多个色标
3个颜色
background-image: linear-gradient(red, yellow, green);
彩虹色
background-image: linear-gradient(to right,red,orange,yellow,green,blue,indigo,violet);
使用透明度
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
重复线性渐变
background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
方向控制
方向 | 枚举值 | 角度值 |
---|---|---|
从下到上 | to top | 0deg |
从左到有 | to right | 90deg |
从上到下(默认) | to bottom | 180deg |
从右到左 | to left | 270deg |
完整代码
在线预览:https://mouday.github.io/front-end-demo/gradient/linear-gradient.html
<style>.box {height: 200px;}/* 从上到下(默认) */.linear-gradient--default {background-image: linear-gradient(red, yellow);}/* 从左到右 */.linear-gradient--to-right {background-image: linear-gradient(to right, red, yellow);}/* 对角线: 从左上角 到右下角 */.linear-gradient--to-bottom-right {background-image: linear-gradient(to bottom right, red, yellow);}/* 使用角度 */.linear-gradient--negative-90deg {background-image: linear-gradient(-90deg, red, yellow);}/* 使用多个色标 */.linear-gradient--three-color {background-image: linear-gradient(red, yellow, green);}/* 使用多个色标 彩虹色 */.linear-gradient--rainbow {background-image: linear-gradient(to right,red,orange,yellow,green,blue,indigo,violet);}/* 使用透明度 */.linear-gradient--transparent {background-image: linear-gradient(to right,rgba(255, 0, 0, 0),rgba(255, 0, 0, 1));}/* 重复线性渐变 */.repeating-linear-gradient {background-image: repeating-linear-gradient(red, yellow 10%, green 20%);}</style><h1>线性渐变</h1><h2>从上到下(默认)</h2><p>background-image: linear-gradient(red, yellow);</p><div class="box linear-gradient--default"></div><h2>从左到右</h2><p>background-image: linear-gradient(to right, red, yellow);</p><div class="box linear-gradient--to-right"></div><h2>对角线: 从左上角 到右下角</h2><p>background-image: linear-gradient(to bottom right, red, yellow);</p><div class="box linear-gradient--to-bottom-right"></div><h2>使用角度: -90deg 相当于从右向左</h2><p>background-image: linear-gradient(-90deg, red, yellow);</p><div class="box linear-gradient--negative-90deg"></div><h2>使用多个色标</h2><p>background-image: linear-gradient(red, yellow, green);</p><div class="box linear-gradient--three-color"></div><h2>使用多个色标: 彩虹色</h2><p>background-image: linear-gradient(to right,red,orange,yellow,green,blue,indigo,violet);</p><div class="box linear-gradient--rainbow"></div><h2>使用透明度</h2><p>background-image: linear-gradient(to right, rgba(255,0,0,0),rgba(255,0,0,1));</p><div class="box linear-gradient--transparent"></div><h2>重复线性渐变</h2><p>background-image: repeating-linear-gradient(red, yellow 10%, green 20%);</p><div class="box repeating-linear-gradient"></div>