CSS3背景渐变效果
学习要点:
1.线性渐变
2.径向渐变
本章主要探讨HTML5中CSS3背景渐变功能,主要有两种渐变方式:线性渐变和径向 (放射性)渐变。
一.线性渐变
linear-gradient背景颜色的渐变功能
CSS3提供了linear-gradient属性实现背景颜色的渐变功能。在以前,这种效果必须采用图片才能实现的。首先,我们先看一下它的样式表,如下:
linear-gradient(方位,起始色,末尾色)
方位 可选参数,渐变的方位。可以使用的值有:
totop、to topright、to right、to bottom、to bottomleft、toleft、to top left。
起始色 必选参数,颜色值
末尾色 必选参数,颜色值
两个必须参数
p{ width: 200px; height: 100px; background-image: linear-gradient(#ffbe18, #138010); } <p>是一部由北青传媒股份</p>
增加一个方位
p{ width: 200px; height: 100px; background-image: linear-gradient( to top,#ffbe18, #138010); } <p>是一部由北青传媒股份</p>
通过top、left、right、bottom这四组实现的渐变方向有时比较单一,我们可以使用以角度单位的数值来设置方位。比如 度(0deg)相当于totop;角度会沿逆时针方向随着你的角度的增加而增加。
通过角度设置方位, ~ 36 度之间,可以是负值
p{ width: 200px; height: 100px; background-image: linear-gradient(45deg, #ffa500, #008000); } <p>是一部由北青传媒股份</p>
多色线性渐变
p{ width: 200px; height: 100px; background-image: linear-gradient(-45deg, #ffa500, #008000, #0000ff, #ff0000); } <p>是一部由北青传媒股份</p>
通过百分比设置多色线性位置
p{ width: 200px; height: 100px; background-image:linear-gradient(-45deg, #ffa500 0%, #008000 20%, #0000ff 40%, #ff0000 1%); } <p>是一部由北青传媒股份</p>
默认情况下:起始颜色的百分比位置是0%,末尾颜色的百分比位置是1 %,其他位置按照平均值分配。也可以使用px像素来设定,但计算麻烦点。
结合背景,并使用透明渐变实现强大层次感
p{ width: 200px; height: 100px; background-color: red; background-image: linear-gradient(to top right, rgba(0,0,0,0.6),rgba(0,0,0,0)); } <p>是一部由北青传媒股份</p>
重复渐变属性值
p{ width: 200px; height: 100px; background-image:repeating-linear-gradient(to top,orange 10px, green 30px); } <p>是一部由北青传媒股份</p>
目前最新的主流浏览器都支持CSS3的渐变属性,那么对于之前的浏览器支持度如何呢?可以参考如下的表:
Opera Firefox Chrome Safari IE
部分支持需带前缀 11.5 无 4 ~ 9 4 ~ 5 无
支持需带前缀 无 3.6 ~ 15 1 ~ 25 5.1~ 6 无
支持不带前缀 12.1+ 16+ 26+ 6.1+ 10.0+
这里提到了部分支持,说明当时可能渐变还尚未完善,但可以通过添加前缀来使用它了。具体哪些没完善,已经无法考证了,版本太过久远。那么支持带前缀和不支持带前缀的完整 格式如下:
加上兼容前缀
p{ background-image: -webkit-linear-gradient(to top, orange, green); background-image: -moz-linear-gradient(to top, orange, green); background-image: -o-linear-gradient(to top, orange, green); background-image: linear-gradient(to top, orange, green); } <p>是一部由北青传媒股份</p>
repeating-linear-gradient属性值和linear-gradient基本相同,不在赘述。
二.径向渐变
radial-gradient背景径向渐变
CSS3提供了径向渐变,也叫做放射性渐变:radial-gradient属性值。它是从一个点向四周发散的方式扩展。属性值样式表如下:
radial-gradient(方位,起始色,末尾色)
方位 可选参数,径向的方位。可以使用的值有:像素、百分比、固定值,或复合搭配使用
起始色 必选参数,颜色值
末尾色 必选参数,颜色值
两个必选参数
p{ background-image: radial-gradient(orange, green); } <p>是一部由北青传媒股份</p>
如果想设置第一个可选参数,有一种做法是设置为:cirlce(圆形)或ellipse(椭圆形)。默认是椭圆形。
形状 说明
circle 圆形
ellipse 椭圆形,默认值
p{ background-image: radial-gradient(circle, orange, green); } <p>是一部由北青传媒股份</p>
不单单可以设置形状,还可以设置形状的发散方向
方向 说明
top 从顶部发散
left 从左侧发散
right 从右侧发散
bottom 从底部发散
center 从中间发散
p{ background-image: radial-gradient(circle at top, orange, green); } <p>是一部由北青传媒股份</p>
也可以复合方向,比如右下方
p{ background-image: radial-gradient(circle at right bottom, orange, green); } <p>是一部由北青传媒股份</p>
可以设置发散的距离,即圆的半径长度
半径关键字 说明
closest-side 指定径向渐变的半径长度为从圆心到离圆心最近的边
closest-corner 指定径向渐变的半径长度为从圆心到离圆心最近的角
farthest-side 指定径向渐变的半径长度为从圆心到离圆心最远的边
farthest-corner 指定径向渐变的半径长度为从圆心到离圆心最远的角
p{ background-image:radial-gradient(circle closest-side,orange,green); } <p>是一部由北青传媒股份</p>
关键字有点拗口,可以用像素表示半径,但不接受百分比
p{ background-image: radial-gradient(circle 50px, orange, green); } <p>是一部由北青传媒股份</p>
同样,也有重复背景方式
p{ background-image: repeating-radial-gradient(circle 50px, orange, green); } <p>是一部由北青传媒股份</p>
兼容模式
p{ background-image: -webkit-radial-gradient(circle,orange, green); background-image: -moz-radial-gradient(circle,orange, green); background-image: -o-radial-gradient(circle,orange, green); background-image: radial-gradient(circle, orange, green); } <p>是一部由北青传媒股份</p>
两个重复背景只要加上前缀就是兼容模式了
background-image: -webkit-repeating-radial-gradient
background-image: -moz-repeating-radial-gradient
background-image: -o-repeating-radial-gradient
background-image: repeating-radial-gradient