核心提示: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 | 指定径向渐变的半径长度为从圆心到离圆心最圆的角 |