线性渐变 linear-gradient()
/* 【默认方向】从上到下 */
linear-gradient(white, skyblue);
/* 使用关键字to表示渐变方向【常用】 */
linear-gradient(to right, white, skyblue);
linear-gradient(to right bottom, white, skyblue);
/* 使用角度值表示渐变方向 */
linear-gradient(45deg, white, skyblue);
linear-gradient(.25turn, white, skyblue);
角度值:垂直方向为 0deg,顺时针旋转,45deg 的渐变方向是从左下角到右上角
渐变分界线
- 颜色值在前,分界线位置在后
linear-gradient(white, skyblue 50%);
- 未指定分界线位置,则颜色等分
linear-gradient(red, orange, yellow, green);
/* 等同于 */
linear-gradient(red 0%, orange 33.33%, yellow 66.66%, green 100%);
- 分界线位置可以是负数,也可以大于100%。
如果不是高清显示器,则在Chrome浏览器中,不同颜色位于同一断点位置的时候,两个颜色连接处可能会有明显的锯齿。
优化方案:在颜色连接处留1px的过渡区间,优化视觉表现
linear-gradient(30deg, red 50%, skyblue calc(50% + 1px));
颜色转换点
linear-gradient(white, 70%, skyblue);
表示白色和天蓝色渐变的中心转换点位置在70%,可以用来模拟更符合真实世界的立体效果(IE暂不支持)
【实战】绘制占位图
https://blog.csdn.net/weixin_41192489/article/details/120570358
径向渐变 radial-gradient()
background-image: radial-gradient(white, deepskyblue);
渐变半径
radial-gradient(50px 50%, white, deepskyblue); /* 水平半径为50px 垂直半径为50% */
radial-gradient(50px, white, deepskyblue); /* 水平半径和垂直半径都是50px */
水平半径和垂直半径合写的时候,只能是长度值,不能是百分比值
radial-gradient(50% 50%, white, deepskyblue); /* 使用百分比值,就必须给出两个值 */
渐变中心点
渐变中心点在左上角
radial-gradient(100px at 0 0, white, deepskyblue);
radial-gradient(100px at left top, white, deepskyblue);
渐变的中心点在距离右边缘和下边缘100px的位置
radial-gradient(100px at right 100px bottom 100px, white, deepskyblue);
渐变终止点
关键字 | 描述 |
---|---|
| 渐变中心距离容器最近的边作为终止位置 |
| 渐变中心距离容器最近的角作为终止位置 |
| 渐变中心距离容器最远的边作为终止位置 |
| 默认值。渐变中心距离容器最远的角作为终止位置 |
radial-gradient(farthest-corner circle at right 100px bottom 100px, white, deepskyblue);
-
关键字ellipse——椭圆【默认】
-
关键字circle——圆
如果只有1个值,或者出现了circle关键字,后面的值只能是长度值,不能是百分比值
- at position的位置是固定的,其一定是在半径值的后面、渐变断点的前面
【实战】高光按钮,炫彩按钮,点击按钮–圆形扩散,波形效果–优惠劵
https://blog.csdn.net/weixin_41192489/article/details/120646819
锥形渐变 conic-gradient()
https://blog.csdn.net/weixin_41192489/article/details/120653372
重复渐变
repeating-linear-gradient(transparent, deepskyblue 40px);
repeating-radial-gradient(transparent, deepskyblue 40px);
repeating-conic-gradient(transparent, deepskyblue 40deg);
起止颜色位置需要明确定义
【实战】条纹边框
.stripe-border {
width: 150px; height: 200px;
border: 20px solid;
border-image: repeating-linear-gradient(135deg, deepskyblue 0 6px, white 7px 12px) 20;
}