- 说明
- . 线性渐变Linear Gradients - 向下/向上/向左/向右/对角方向
- . 创建一个线性渐变,至少定义两个色块
- . 可以指定色块的大小/范围和方向
- . 不特别指明都是从0开始,到100%结束;这俩个位置可以省略
- 语法
-
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
- 普通渐变
- [] 默认渐变:从上到下[180deg]
-
background-image: linear-gradient(#f40, #ff0);
- [] 0deg渐变:从下到上,可以看出,它的0deg并不是向右的,而是朝上↑
-
background-image: linear-gradient(0deg, #f40, #ff0);
- [] 45deg渐变:左下到右上
-
background-image: linear-gradient(0deg, #f40, #ff0);
- 断点渐变
- . 断点处使用相同的色块大小;使用0表示和前面色块的范围相同
- . 利用角度实现切角的效果
- [] 切割色块
-
background-image: linear-gradient(135deg,
#f40 50%, transparent 0);
- [] 斑马渐变
-
background-image: linear-gradient(90deg,
#f40 10%,
transparent 0, transparent 20%,
#f40, 0, #f40 30%,
transparent 0, transparent 40%,
#f40, 0, #f40 50%,
transparent 0, transparent 40%,
#f40, 0, #f40 50%,
transparent 0, transparent 60%,
#f40, 0, #f40 70%,
transparent 0, transparent 80%,
#f40, 0, #f40 90%,
transparent 0, transparent 100%)
- 单切角渐变
- . 断点渐变中,将其中一个色块设置为透明
- . 可以是某个颜色到透明的渐变;也可以是透明到某个色块的渐变
- [] 右上切角
-
linear-gradient(225deg, transparent 10px, #f40, 0, #f40 100%);
- 多切角渐变
- . 多个背景图片叠加而成
- . 每个背景图片以,分隔
- . 先出现的在上面,后出现的在后面
- [] 左上右上切角
- . 两块:宽50%;高100%;一左一右放置
- . 多个背景叠加,需要使用复合属性 background
- . 不重复
-
background:
linear-gradient(135deg, transparent 10px, #f40, 0, #f40 100%),
linear-gradient(225deg, transparent 10px, #f40, 0, #f40 100%) right;
background-size: 50% 100%;
background-repeat: no-repeat;
- [] 四角切角
- . 4块;宽高各为50%;分别放置4个角
- . 不重复
-
background:
linear-gradient(45deg, transparent 10px, #f40, 0, #f40 100%) bottom left,
linear-gradient(135deg, transparent 10px, #f40, 0, #f40 100%) top left,
linear-gradient(225deg, transparent 10px, #f40, 0, #f40 100%) top right,
linear-gradient(325deg, transparent 10px, #f40, 0, #f40 100%) bottom right;
background-size: 50% 50%;
background-repeat: no-repeat;
//background-size: 50% 50%, 50% 50%, 50% 50%, 50% 50%;
//background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
- [] 遮罩背景-利用透明的渐变背景和图片背景实现
- . 图片位于底层;透明的渐变位于上层,所以渐变要写在前面
-
.mask-bg {
height: 300px;
background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0.1)), url(../imgs/1.jpg) center/cover;
}
-
. 0deg是从下到上↑,顺时针方向增加;默认是180deg,从上到下↓
. 如果使用多个渐变,请使用复合属性background;可以单独指定不重复
. 实际运用时,先画个草图,大概确定下背景图片的组成、大小和位置,再使用样式实现
. 除此外,还有重复线性渐变:repeating-linear-gradient()
- 说明
- . 径向渐变Radial Gradients - 由它们的中心和到容器边或角的大小决定
- . 同线性渐变一样:创建一个径向渐变,至少定义两个色块;可以定义每个色块的渐变范围;可以指定大小;可以定义多重径向渐变等等
- 语法
-
background-image: radial-gradient([shape] [size] at position, start-color, ..., last-color);
- 参数说明:
- . shape: 椭圆eclipse[默认],圆circle
- . size:到容器的边或角的距离;closest-side、farthest-side、closest-corner、farthest-corner[默认]
- . position:为中心;可以使用关键字指定位置;可以使用数字;可以百分比
- 普通渐变
- [] 默认渐变:从中心向外
-
background-image: radial-gradient(#f40, #ff0);
- [] 圆形从左上向外渐变
-
background-image: radial-gradient(circle at left top, #f40, #ff0);
- [] 圆形从左上向外断点渐变
-
background-image: radial-gradient(circle at top left, #f40 50%, #ff0 0);
- [] 放置于右上角的50px的圆形
-
background-image: radial-gradient(circle at top left, #f40 50%, #ff0 0);
- [] 底部弧度
-
background-image: radial-gradient(at 0% 0%, transparent 71%, #f40 0);
- [] 多重渐变-信息卡
- . 可以使用background-image或background
-
background:
radial-gradient(circle at -10% 10%, transparent 70%, rgba(255, 68, 0, 0.3) 0),
radial-gradient(circle at 5% 20%, transparent 70%, rgba(255, 68, 0, 0.6) 0),
radial-gradient(circle at 10% 10%, transparent 75%, rgb(255, 68, 0) 0);
- [] 指定图形大小
-
background:
radial-gradient(30px circle at 0 0, transparent 50%, #f40 0),
radial-gradient(30px circle at 100% 0, transparent 50%, #f40 0) right top,
radial-gradient(30px circle at 100% 100%, transparent 50%, #f40 0) right bottom,
radial-gradient(30px circle at 0% 100%, transparent 50%, #f40 0) left bottom;
background-repeat: no-repeat;
background-size: 50% 50%;
- []重复径向渐变:repeating-radial-gradient()
- 说明
- . 角度渐变
- . 适合做圆锥图/饼状图
- 语法
-
conic-gradient([from angle] [at position,] color degree, color degree, ...);
- [] 圆锥图
- . 从0到360deg的渐变
-
-
.pie {
background-image: conic-gradient(#f3f3f3, #078);
}
- [] 饼图
- . 整个圆周划分3个区域:0-40deg、40-120deg、120-360deg
-
-
.pie {
background-image: conic-gradient(
hsl(188, 100%, 40%) 0deg,
hsl(188, 100%, 40%) 40deg,
hsl(188, 100%, 27%) 40deg,
hsl(188, 100%, 27%) 120deg,
hsl(188, 100%, 20%) 120deg,
hsl(188, 100%, 20%) 360deg);
}