在css3出来之前,想要出现渐变效果必须就要制作一张图片。不过css3的出现使得渐变效果变得简单。由于不是所有的浏览器都支持css3,所以不是所有的浏览器都能够呈现出css3的效果出来。因此目前大部分还是需要制作图片的提现渐变的。

目前Mozilla内核的(Firefox)和Webkit内核的(Chrome和Safari)浏览器支持这一属性。不过两者对于渐变的语法是有些差异的。

Webkit内核:它是第一个支持渐变的浏览器内核。它的实际用法:

-webkit-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )//最新发布书写语法;

-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) //老式语法书写规则;切记要用逗号隔开这些参数; 

先看老式的写法:background: -webkit-gradient(linear,center top,center bottom,from(#ccc), to(#000));

接着我们在来看一下新式的写法:background:-webkit-linner-gradient(top,#ccc,#000); webkit新式的写法和Mozilla的一样了。当然当有一日它们统一成一样的了那就不用单独再去处理不同内核的写法了,这将大大节省开发时间。

-webkit-gradient是webkit引擎对渐变的实现参数,一共有五个。

第一个参数表示渐变类型(type),可以是linear(线性渐变)或者radial(径向渐变)。

第二个参数和第三个参数,都是一对值,分别表示渐变起点和终点。这对值可以用坐标形式表示,也可以用关键值表示,比如 left top(左上角)和left bottom(左下角)。

第四个和第五个参数,分别是两个color-stop函数。color-stop函数接受两个参数,第一个表示渐变的位置,0为起点,0.5为中点,1为结束点;第二个表示该点的颜色。

Mozilla内核:firefox从3.6版本才开始支持渐变,并且它和webkit略有不同的写法:

background:-moz-linner-gradient(top,red,blue); 请注意这里的渐变类型放在属性前缀中了。

-moz-linear-gradient有三个参数。第一个参数表示线性渐变的方向,top是从上到下、left是从左到右,如果定义成left top,那就是从左上角到右下角。第二个和第三个参数分别是起点颜色和终点颜色。你还可以在它们之间插入更多的参数,表示多种颜色的渐变。

Color-stops: 如果你不需要一个颜色到另一个颜色100%渐变怎么办。这就是color-stops起作用的时候了。

background: white; /* 为较旧的或者不支持的浏览器设置备用属性 */

background: -moz-linear-gradient(top, #dedede, white 8%);

background: -webkit-gradient(linear, 0 0, 0 8%, from(#dedede), to(white));

这次我们让渐变结束与8%,而不是默认的100%。

上面我们主要介绍了线性渐变在两大核心模块下的实现方法,接下来我们主要针对线性渐变在这两个内核的浏览器下的实现各种不同线性渐变的实例;

具体应用如下:

background:-moz-linear-gradient(top,#ace,#f96);/*Mozilla*/
background:-webkit-gradient(linear,0 0%,0% 100%,from(#ace),to(#f96));/*Old gradient for webkit*/
background:-webkit-linear-gradient(top,#ace,#f96);/*new gradient for Webkit*/

接下里我们看看color-stops函数的应用:

/* Firefox 3.6+ */
background: -moz-linear-gradient(left, #ace, #f96, #ace, #f96, #ace);
/* Chrome 1-9 */
background: -webkit-gradient(linear, left top, right top, from(#ace), color-stop(0.25, #f96),
color-stop(0.5, #ace), color-stop(0.75, #f96), to(#ace));
/* Chrome 10+ */
background: -webkit-linear-gradient(left, #ace, #f96, #ace, #f96, #ace);

实现效果如:

这里的color-stop(0.75, #f96)这里指的意思是在0.75的地方颜色为#f96;这里就不一一说明了。

在指定的位置停止,对于没有指定的位置颜色会均匀分布。来看具体的实例:

 /* Firefox 3.6+ */
background: -moz-linear-gradient(left, #ace, #f96 5%, #ace, #f96 95%, #ace);
/* Chrome 1-9 */
background: -webkit-gradient(linear, left top, right top, from(#ace), color-stop(0.05, #f96), color-stop(0.5, #ace),
color-stop(0.95, #f96), to(#ace));
/* Chrome 10+ */
background: -webkit-linear-gradient(left, #ace, #f96 5%, #ace, #f96 95%, #ace);

具体的效果图如下:

  角度:除了使用百分比和left,top等还可以使用角度来确定渐变的方向。当指定的角度请记住,它是由一个水平线和渐变线产生的角度,逆时针方向。因此使用0deg将产生一个左到右的横向梯度,而90deg将创建一个从底部到顶部的垂直渐变。

渐变除了线性渐变还有径向渐变,径向渐变的使用方法其实和线性的用法差不多只是颜色布局不同而已。这里我们主要研究的是线性渐变,有兴趣的可以研究哈径向渐变。

背景渐变如果和box-shadow一起运用的好,那效果还是挺炫的。结尾挺草率的······因为马上下班啦!啦啦啦~~~

CSS3之渐变效果的更多相关文章

  1. 第七十九,CSS3背景渐变效果

    CSS3背景渐变效果 学习要点: 1.线性渐变 2.径向渐变 本章主要探讨HTML5中CSS3背景渐变功能,主要有两种渐变方式:线性渐变和径向 (放射性)渐变. 一.线性渐变 linear-gradi ...

  2. CSS3文字渐变效果

    background-clip + text-fill-color下的实现 如果您手头上的浏览器是Chrome或是Safari,则您可以在demo页面中看到类似下面的效果: <h2 class= ...

  3. CSS3 Gradient渐变效果

    最近看到一遍关于渐变的文章,感觉很好,只是收藏感觉太可惜了,就转载了,好好学习! CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变). ...

  4. css3的渐变效果

    1.css3 渐变的属性 例子: #grad { background: -webkit-linear-gradient(red, blue); /* Safari 5.1 - 6.0 */ back ...

  5. css3 linear-gradient渐变效果及兼容性处理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 新特性AAtitti css3 新特性attilax总结titti css

    Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...

  7. Atitti css3 新特性attilax总结

    Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...

  8. 再说CSS3渐变——线性渐变

    渐变背景一直以来在Web页面中都是一种常见的视觉元素.但一直以来,Web设计师都是通过图形软件设计这些渐变效果,然后以图片形式或者背景图片的形式运用到页面中.Web页面上实现的效果,仅从页面的视觉效果 ...

  9. 深入了解——CSS3新增属性

    CSS3 选择器(Selector) 写过 CSS 的人应该对 CSS 选择器不陌生,我们所定义的 CSS 属性之所以能应用到相应的节点上,就是因为 CSS 选择器模式.参考下述代码: 清单 1. C ...

随机推荐

  1. 【20】宁以pass-by-reference-to-const替换pass-by-value

    1.首先理解需求,被调用方法修改了形参,如果期望在主调方法中的实参也发生变化,必须使用pass-by-reference.因为C++缺省情况下(继承C方式),以by-value传递对象,在被调方法中修 ...

  2. 【翻译】Ext JS最新技巧——2014-5-12

    原文:mkt_tok=3RkMMJWWfF9wsRoluazJZKXonjHpfsX77OQlXK%2B%2FlMI%2F0ER3fOvrPUfGjI4AT8NjI%2BSLDwEYGJlv6SgFS ...

  3. careercup-中等难度 17.4

    17.4 编写一个方法,找出两个数字中最大的那一个.不得使用if-else或其他比较运算符. 解法: 我们可以通过一步步的分析来将需要用到的if-else和比较操作符去掉: If a > b, ...

  4. 学习笔记之ulimit

    Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数.可以用ulimit -a 来显示当前的各种用户进程限制. Linux/Unix ul ...

  5. VIM7.3中文手册

    INDEX *index.txt*     For Vim version 7.3.  最近更新: 2010年7月 VIM 参考手册    by Bram Moolenaar 译者: Willis h ...

  6. html5 list属性、autocomplete属性、pattern属性

    list属性的值为某个datalist元素的id,datalist也是html5中新增的属性,类似于选择框select,或者android中的autocomplete textview控件.datal ...

  7. 明天参加GDG devfest

    明天就可以第二次去参加devfest了,还记得去年去的时候是个啥也听不懂的小白,希望今年能够收获更多,结识更多大牛和志同道合的伙伴.

  8. CSS选择器优先级

    1.类的覆盖顺序和应用的时候引用的顺序没关系,覆盖顺序取决于类定义的顺序     例如: .a{ color:red } .b{ color:green }     由于b晚于a定义,所以b覆盖a,反 ...

  9. Volatile变量

    关于volatile变量的使用,由于使用得比较多,后面如果需要温习的话可以参考:http://www.infoq.com/cn/articles/java-memory-model-4

  10. 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题

    写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...