关于css3的渐变,目前各大浏览器还未做到很好的支持,所以需要在我们使用时加上各大浏览器前缀。
-moz-:使用Mozilla内核的浏览器(Firefox浏览器)
-webkit-:使用Webkit内核的浏览器(Chrome,Safari浏览器)
-o-:使用Opera内核的浏览器(Opera浏览器)
这里对IE不做过多介绍,对于本文背景颜色的渐变,也没有考虑IE
一。线性渐变(linear-gradient)
1.语法:-moz-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……)
参数:第一个参数便是线性渐变的方向
top:从上到下;
left:从左到右;
right:从右到左;
bottom:从下到上;
也可以两两组合,例如从左上:left top,从右上:right top等等,这里就不过多介绍了;
angle代表角度(一直认为涉及到角度一个平面直角坐标系足够直观)。
第二个参数和第三个参数分别是起点和终点的颜色,还可以再他们之间插入更多的参数,表示多种颜色的渐变,颜色支持使用16进制数值表示,也可以使用rgb(a)数值
例:background:-moz-linear-gradient(top,#000,#fff);
注:表示从#000到#fff的渐变
background:-moz-linear-gradient(45deg,#000 50%,#555 50%,#555);
注:表示0-50%是#000,50%-100%是#555
2.语法:-webkit-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……) 【新式语法书写规则】
-webkit-gradient(<type>,<start point>/<angle>,<end point>/<angle>,<color-stop>,<color-stop>……) 【老式语法书写规则】
新式语法书写规则与其他相同这里不过多介绍,下面介绍一下老式语法规则:
参数:第一个参数表示渐变类型,可以是linear(线性)或者radial(径向);
第二个参数和第三个参数表示渐变的起点和终点,可以是坐标或关键值;
第四个和第五个参数分别表示起点和终点的颜色,还可以再他们之间插入更多的参数,表示多种颜色的渐变,颜色支持使用16进制数值表示,也可以使用rgb(a)数值。
例:background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#000));
注:表示从上到下,从#fff到#000的渐变
background:-webkit-gradient(linear,0 0,100% 100%,color-stop(.5,rgb(255,255,255)),color-stop(.5,rgba(0,0,0,.2)));
注:表示从左上到右下0-50%是白色,50%-100%是透明度为0.2的黑色
3.语法:-o-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……)
例:background:-moz-linear-gradient(top,#000,#fff);
注:表示从#000到#fff的渐变
二。径向渐变(radial-gradient)
语法:-moz-radial-gradient(<point>/<angle>,<shape>/<size>,<color-stop>,<color-stop>……);
-webkit-radial-gradient(<point>/<angle>,<shape>/<size>,<color-stop>,<color-stop>……);
oprea浏览器对径向渐变的支持还不太好,所以在这里不介绍。除了在线性渐变中看到的其实位置,方向和颜色,径向渐变允许指定渐变的形状:圆形(circle)和椭圆形(ellipse)和大小:最近端(closest-side),最近角(closest-corner),最远端(farthest-side),最远角(farthest-corner),包含(contain),覆盖(cover)。对于这几个大小的设置有的差距甚微,有些迷惑。
例:background:radial-gradient(#fff, #000);
background: -webkit-radial-gradient(#fff, #000);
注:表示从白到黑的圆形渐变
background: -moz-radial-gradient(80% 20%, closest-corner, #fff, #000);
background: -webkit-radial-gradient(80% 20%, closest-corner, #fff, #000);
注:表示在80% 20%的位置有白色圆到黑色的渐变
2.css的重复渐变
语法:-moz-repeating-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……);
-webkit-repeating-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……);
-o-repeating-linear-gradient(<point>/<angle>,<color-stop>,<color-stop>……);
-moz-radial-gradient(<point>/<angle>,<shape>/<size>,<color-stop>,<color-stop>……);
-webkit-radial-gradient(<point>/<angle>,<shape>/<size>,<color-stop>,<color-stop>……);
例:background: -moz-repeating-radial-gradient(#fff, #000 5px, #000 5px, #000 10px);
background: -webkit-repeating-radial-gradient(#fff, #000 5px, #000 5px, #fff 10px);
注:表示一圈一圈的黑白圆圈(不要太晕哦)
本文摘自大漠的博客http://www.w3cplus.com/content/css3-gradient