核心提示:CSS3 背景渐变,主要有两种形式:线性渐变和径向渐变。一、线性渐变语法:linear-gradient(方位, 起始色, 末尾色)		方位	可选参数,渐变的方位。可以使用的值:to top、to t...
       CSS3 背景渐变,主要有两种形式:线性渐变和径向渐变。
一、线性渐变
语法:linear-gradient(方位, 起始色, 末尾色)
| 方位 | 可选参数,渐变的方位。可以使用的值:to top、to top right、to right、to bottom、to bottom left、to left、to top left | 
| 起始色 | 必选参数,颜色值 | 
| 末尾色 | 必选参数,颜色值 | 
通过top、left、right、bottom这四组实现的渐变方向比较单一,可以使用角度单位的数值来设置方位。比如0度(0deg)相当于to top;角度会沿逆时针方向随着角度的增加而增加。
@charset "utf-8";
p{
	/* 设置宽高方便观察 */
	width: 400px;
	height: 400px;
	border:solid 1px silver;
}
/********************** 线性渐变 **********************/
/* 简单的线性渐变和斜的线性渐变 */
p{
	/* 两个必须参数,这是会发现渐变是自上而下的,呈线性渐变 */
	/*background-image:linear-gradient(orange, green);*/
	/* 添加一个向上的方位,to 表示向哪个方向,这里表示自下而上 */
	/*background-image: linear-gradient(to top, orange, green);*/
	/* 添加一个向左的方位 */
	/*background-image: linear-gradient(to left, orange, green);*/
	/* 添加一个斜向的线性渐变*/
	/*background-image: linear-gradient(to top left, orange, green);*/
}
/* 通过角度设置方位的线性渐变,0 ~ 360 度之间,可以是负值 */
p{
	/* 0 度相当于to top */
	/*background-image: linear-gradient(0deg, orange, green);*/
	/* 随着角度的变化,沿顺时针方向变化 */
	/* 45 度相当于to top right */
	/*background-image: linear-gradient(45deg, orange, green);*/
	/*background-image: linear-gradient(60deg, orange, green);*/
	/* 90 度相当于to right */
	/*background-image: linear-gradient(90deg, orange, green);*/
	/* 180 度相当于to bottom */
	/*background-image: linear-gradient(180deg, orange, green);*/
	/* 角度也可以是负值,沿逆时针方向变化  */
	/* -45 度相当于to top left */
	/*background-image: linear-gradient(-45deg, orange, green);*/
	/* -90 度相当于to left */
	/*background-image: linear-gradient(-90deg, orange, green);*/
}
/* 多种颜色的渐变 */
p{
	/*background-image: linear-gradient(orange, green, red, blue);*/
}
/* 默认情况下,起始颜色的百分比位置是0%,末尾颜色的百分比位置是100%,其它位置按照平均值分配。位置也可以使用px像素来设定,但计算麻烦点。
例如 background-image: linear-gradient(orange, green, red, blue); 
orange 位置是0%,green 位置是33.33%,red 位置是66.66%,blue 是100%。比例是在渐变的方向上计算的。
0% - 33.33% 之间是orange 到 green 的渐变,
33.33% - 66.66% 之间是green 到 red 的渐变,
66.66% - 100% 是red 到 blue 的渐变。
提示:如果设置起始颜色的位置不是0% 的话,会出现起始颜色位置之前的区域是起始色。
如果设置的末尾颜色的位置不是100% 的话,会出现末位颜色位置之后的区域是末位色。
 */
p{
	/* 改变起始颜色和末位颜色的位置 */
	/*background-image: linear-gradient(orange 25%, green 50%, blue 75%);*/
	/* 如果想要起始颜色之前的区域为透明,添加一个新的起始颜色,把这个新的起始颜色设置为透明就可以了 */
	/*background-image: linear-gradient(rgba(0, 0, 0, 0) 25%,orange 25%, green 50%, blue 75%);*/
	/* 如果想要末尾颜色之前的区域为透明,添加一个新的末尾颜色,把这个新的末尾颜色设置为透明就可以了 */
	/*background-image: linear-gradient(orange 25%, green 50%, blue 75%, rgba(0, 0, 0, 0) 75%);*/
	/* 如果想要起始、末尾颜色之前的区域为透明,添加新的起始和末尾颜色,把新的起始和末尾颜色都设置为透明就可以了*/
	/*background-image: linear-gradient(rgba(0, 0, 0, 0) 25%, orange 25%, green 50%, blue 75%, rgba(0, 0, 0, 0) 75%);*/
	/* 可以通过添加方位,来改变渐变的方向 */
	/*background-image: linear-gradient(to top right, orange 25%, green 50%, blue 75%);*/
	/*background-image: linear-gradient(to left, orange 25%, green 50%, blue 75%);*/
	/* 用 px像素来设定位置 */
	/*background-image: linear-gradient(orange 0px, green 200px, blue 400px);*/
}
/* 结合背景,并使用透明渐变实现层次感*/
p{
	/*background-color: red;*/
	/*background-image: linear-gradient(to top right, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0))*/
}
/* 之前的渐变都不是重复的,也可以设置重复渐变 */
p{
	/*background-image: repeating-linear-gradient(to top right, orange 10px, green 30px);*/
}
/* 加上兼容前缀,支持带前缀和不支持带前缀的完整格式 */
p{
	/*background-image: -webkit-linear-gradient(to top right, orange, green);
	background-image: -moz-linear-gradient(to top right, orange, green);
	background-image: -o-linear-gradient(to top right, orange, green);
	background-image: linear-gradient(to top right, orange, green);*/
}
CSS3 渐变,浏览器支持:
| Opera | Firefox | Chrome | Safari | IE | |
|---|---|---|---|---|---|
| 部分支持需带前缀 | 11.5 | 无 | 4 ~ 9 | 4 ~ 5 | 无 | 
| 支持需带前缀 | 无 | 3.6 ~ 15 | 10 ~ 25 | 5.1 ~ 6 | 无 | 
| 支持不带前缀 | 12.1+ | 16+ | 26+ | 6.1+ | 10.0+ | 
提示:repeating-linear-gradient 属性值和 linear-gradient 基本相同。
二、径向渐变(也叫放射性渐变)
径向渐变:radial-gradient 属性值。它是从一个点向四周发散的方式扩展。
语法:radial-gradient(方位, 起始色, 末尾色)
属性值样式表:
| 方位 | 可选参数,径向的方位,可以使用的值有:像素、百分比、固定值,或复合搭配使用。 | 
| 起始色 | 必选参数,颜色值 | 
| 末尾色 | 必选参数,颜色值 | 
/* 简单的径向渐变 */
p{
	/* 两个必选参数 */
	/*background-image: radial-gradient(green, blue, red);*/
	/* 如果想设置第一个可选参数,有一种做法是设置为:circle(圆形)或ellipse(椭圆形)。默认是椭圆形 */
	/*background-image: radial-gradient(circle, green, blue, red);*/
}
/* 设置径向渐变的发散方向 */
p{
	/* 设置从底部发散 */
	/*background-image: radial-gradient(circle at bottom , green, blue, red);*/
	/* 复合方向,设置从右上发散 */
	/*background-image: radial-gradient(circle at top right , green, blue, red);*/
}
/* 设置发散的距离,即圆的半径长度 */
p{
	/* 指定径向渐变的半径长度为从圆心到离圆心最近的边 */
	/*background-image: radial-gradient(circle closest-side, green, blue, red);*/
	/* 指定径向渐变的半径长度为从圆心到离圆心最近的角 */
	/*background-image: radial-gradient(circle closest-corner, green, blue, red);*/
	/* 指定径向渐变的半径长度为从圆心到离圆心最远的边 */
	/*background-image: radial-gradient(circle farthest-side, green, blue, red);*/
	/* 指定径向渐变的半径长度为从圆心到离圆心最远的角 */
	/*background-image: radial-gradient(circle farthest-corner, green, blue, red);*/
	/* 也可以用像素表示半径 */
	/*background-image: radial-gradient(circle 50px, green, blue, red);*/
	/*background-image: radial-gradient(circle 250px, green, blue, red);*/
}
/* 之前的渐变都不是重复的,也可以设置重复渐变 */
p{
	/*background-image: repeating-radial-gradient(circle 50px, green, blue, red);*/
}
/* 加上兼容前缀 */
p{
	/*background-image: -webkit-radial-gradient(circle, green, blue, red);
	background-image: -moz-radial-gradient(circle, green, blue, red);
	background-image: -o-radial-gradient(circle, green, blue, red);
	background-image: radial-gradient(circle, green, blue, red);*/
}
/* 重复背景加上兼容前缀就是兼容模式了 */
p{
	/*background-image: -webkit-radial-gradient;
	background-image: -moz-radial-gradient;
	background-image: -o-radial-gradient;
	background-image: radial-gradient;*/
}
如果想设置第一个可选参数,有一种做法是设置为:circle(圆形)或 ellipse(椭圆形)。默认是椭圆形。
| 形状 | 说明 | 
|---|---|
| circle | 圆形 | 
| ellipse | 椭圆形,默认值 | 
| 方向 | 说明 | 
|---|---|
| top | 从顶部发散 | 
| left | 从左部发散 | 
| right | 从右部发散 | 
| bottom | 从底部发散 | 
| center | 从中间发散,默认值 | 
| 半径关键字 | 说明 | 
|---|---|
| closest-side | 指定径向渐变的半径长度为从圆心到离圆心最近的边 | 
| closest-corner | 指定径向渐变的半径长度为从圆心到离圆心最近的角 | 
| farthest-side | 指定径向渐变的半径长度为从圆心到离圆心最远的边 | 
| farthest-corner | 指定径向渐变的半径长度为从圆心到离圆心最圆的角 | 



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                