渐变是一种可以在两个或两个以上颜色之间实现平稳过渡的效果,分为线性渐变(Linear Gradients)和径向渐变(Radial Gradients)。

在演示之前,先创建一个div,并添加基础样式,在无特殊说明的情况下,下面所有的样式都是在此基础上添加的。

<style type="text/css">
  .one{
    margin:0 auto;
    width:300px;
    height:200px;
  }
</style>
<body>
  <div class="one"></div>
</body>

兼容性

到目前为止,几乎所有的浏览器的新版本都支持渐变,但是在旧版本中的兼容性并不好,因此有必要在属性名前带上指定前缀,这里仅仅举出实例,下面的例子中为了简化操作,省略了该过程,在实际开发过程中,因按需添加。

background:-linear-gradient(top,blue,red);
background:-webkit-linear-gradient(top,blue,red);
background:-webkit-linear-gradient(top,blue,red);
background:-o-linear-gradient(top,blue,red);

线性渐变

线性渐变是指向上、向下、向左、向右或对角方向变化,语法为:

background: linear-gradient(directioncolor-stop1color-stop2, ...);

其中,direction指的是变化的方向,后面的则是参与变化的颜色,两个或两个以上。

渐变方向

默认情况下,线性渐变的渐变方向是由上到下的。下面的实例中,其实颜色为蓝色,终止颜色为红色,从上面慢慢过渡到下面。

.one{ background:-webkit-linear-gradient(top,blue,red);}

除了默认的从上到下,还有从左到右,左上到右下,反方向亦然。

/*从左到右(图1)*/
.one{background:-webkit-linear-gradient(left,blue,red);}
/*左上到右下(图2)*/
.one{background:-webkit-linear-gradient(left top,blue,red);}

/*多个颜色(图3)*/
.one{background:-webkit-linear-gradient(left,yellow,blue,red,orange);}

  

指定停止

在上面的实例中,我们发现,所有颜色都是均匀分布,其实,在默认情况下,我们所添加的颜色都是平均分配,除了默认情况外,我们也可以人为的指定停止位置。

.one{background:-webkit-linear-gradient(left,red 10%,blue 80%,pink 90%);}

在指定位置停止后,将由最后一个颜色填充剩余的空间。

.one{background: -webkit-linear-gradient(red, yellow 10%, green 20%);}

重复的线性渐变,在上面的例子中,我们使用了3中颜色,设置了停止位置,剩余空间有最后的一种颜色填充,如果,我们希望继续重复上的样式,就可以使用repeating-linear-gradient() 函数来实现。

.one{background: -webkit-repeating-linear-gradient(red, yellow 10%, green 20%);}

渐变角度

在线性渐变中,除了设置方向外,我们还可以使用角度渐变,这里的角度指的是水平线和渐变线之间的角度,逆时针计算,也就是说,0°是从下到上的渐变,90°是从左到右的渐变。需要注意的是,在使用旧标准的浏览器(Chrome,Safari,fiefox等)中,0°是从左到右的渐变,90°是从下到上的渐变。两者的换算公式为 90 - x = y 其中 x 为标准角度,y为非标准角度。

/*0°(图1)*/
.one{background:-webkit-linear-gradient(left,blue,red);}
/*90°(图2)*/
.one{background:-webkit-linear-gradient(left top,blue,red);}

/*180°(图3)*/
.one{background:-webkit-linear-gradient(left,yellow,blue,red,orange);}

/*-90°(图4)*/
.one{background:-webkit-linear-gradient(left,yellow,blue,red,orange);}

   

径向渐变

径向渐变不同于线性渐变,它是由中心定义,向四周扩散的一种效果。语法为:

background: radial-gradient(center, shape size, start-color, ..., last-color);

默认情况下,各个颜色均匀分布

.one{background:-webkit-radial-gradient(red,blue,pink);}

指定停止

同线性渐变相同,径向渐变也可以设置颜色停止位置,然后由最后一种颜色填充剩余空间。

/*图1*/
.one{background:-webkit-radial-gradient(red 10%,blue 30%,pink 80%);}
/*图2*/
.one{background:-webkit-radial-gradient(red 10%,blue 20%,pink 30%);}

 

同理,径向渐变也可以使用repeating-radial-gradient() 函数实现重复径向渐变

.one{background:-webkit-repeating-radial-gradient(red 10%,blue 20%,pink 30%);}

渐变形状

在径向渐变中,可以使用参数shape来定义形状,取值包括circle(圆形)和ellipse(椭圆),默认值为ellipse,所以在上面的径向渐变中,都是呈椭圆形状。

/*椭圆 图1*/
.one{background:-webkit-radial-gradient(ellipse,red,blue,pink);}
/*圆形 图2*/
.one{background:-webkit-radial-gradient(circle,red,blue,pink);}

  

在径向渐变中,也可以添加方向

/* 图1*/
.one{background:-webkit-radial-gradient(bottom left,ellipse,red,blue,pink);}
/* 图2*/
.one{background:-webkit-radial-gradient(bottom left,circle,red,blue,pink);}

  

不同尺寸大小关键字

在径向渐变中,可以通过参数size来定义渐变的大小,取值包括closest-side  、closest-corner  、 farthest-side  和farthest-corner

/* 图1大小由起始点到近边的距离设定*/
.one{background:-webkit-radial-gradient(closest-side,red 10%,blue 50%,pink);}
/* 图2大小由起始点到近角的距离设定*/
.one{background:-webkit-radial-gradient(closest-corner,red 10%,blue 50%,pink);}
/* 图3大小由起始点到远边的距离设定*/
.one{background:-webkit-radial-gradient(farthest-side,red 10%,blue 50%,pink);}
/* 图4大小由起始点到远角的距离设定*/
.one{background:-webkit-radial-gradient(farthest-corner,red 10%,blue 50%,pink);}

   

在使用参数size的时候,还可以配合定位参数position一起使用。

.one{background:-webkit-radial-gradient(80% 20%,closest-side,red 10%,blue 50%,pink);}

参考资料

菜鸟教程 http://www.runoob.com/css3/css3-gradients.html

W3CPLUS https://www.w3cplus.com/content/css3-gradient

渐变(Gradients)的更多相关文章

  1. Css3渐变(Gradients)-径向渐变

    CSS3径向渐变-radial-gradient()/repeating-radial-gradient() 径向渐变由它的中心定义. 创建径向渐变,至少定义两种颜色节点,呈现平稳过度的颜色.同时,你 ...

  2. CSS3渐变(Gradients)-线性渐变

    CSS3渐变(Gradients)可以让你在两个或多个指定颜色之间显示平稳的过度,包括透明度. 以前,你必须使用图像来实现这些效果.但是,通过Css3渐变(Gradients),你可以减少下载的事件和 ...

  3. Westciv Tools主要为CSS3提供了渐变gradients、盒子阴影box-shadow、变形transform和文字描边四种在线生成效果的工具

    Westciv Tools主要为CSS3提供了渐变gradients.盒子阴影box-shadow.变形transform和文字描边四种在线生成效果的工具 1.Westciv Tools 彩蛋爆料直击 ...

  4. css3渐变(Gradients)

    <html> http://www.runoob.com/css3/css3-gradients.html CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的 ...

  5. Css3渐变实例Demo(一)

    1.指定渐变背景的大小 .div { background: url(../img/1.jpg); /*background-size:contain;*/ width: 500px; height: ...

  6. Web前端方向课程要点:CSS3渐变制作过程

    CSS3 渐变 CSS3 渐变(gradient)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果,现在通过使用 CSS3 的渐变(gradients)即可实现. ...

  7. Css3 文字渐变整理(一)

    一.文本颜色渐变 <gradient> :可以应用在所有接受图像的属性上,允许使用简单的语法实现颜色渐变,以便UA在渲染页面自动生成图像. 语法:<gradient> = li ...

  8. HTML5资料

    1 Canvas教程 <canvas>是一个新的用于通过脚本(通常是JavaScript)绘图的HTML元素.例如,他可以用于绘图.制作图片的组合或者简单的动画(当然并不那么简单).It ...

  9. 强大的css3

    强大的css3 我们知道,这几年来智能手机的高速发展使得人们使用移动端上网的时间和人数已经超过了PC端.例如在2015年,就中国电商而言,各电商平台在移动端持续发力,移动端购物占比不断攀升,双11期间 ...

  10. html5 canvas 笔记二(添加样式和颜色)

    色彩 Colors fillStyle = color 设置图形的填充颜色. strokeStyle = color 设置图形轮廓的颜色. 透明度 Transparency globalAlpha = ...

随机推荐

  1. SpringMVC(二)传值

    1.HelloController.java 通过model.addAttribute(key,value)进行传值 package zttc.itat.controller; import org. ...

  2. Time-python

    1 datetime   datetime是Python处理日期和时间的标准库   1.1 datetime.datetime datetime.datetime.now()              ...

  3. 使用 Git & Repo 下载代码

    客户端安装 Git 安装 git,gitk 网络连接正常的情况下: $ sudo apt-get install git-core gitk git-gui 不能上网,有.deb安装包的,请执行: $ ...

  4. MyEclipse怎么导入导出项目

    MyEclipse怎么导入导出项目 | 浏览:25271 | 更新:2012-06-06 17:48 1 2 3 4 5 6 7 分步阅读 MyEclipse,是一个十分优秀的功能强大的JavaEE的 ...

  5. 怎么使用C++标准库来实现二维数组

    在编程里,像界面布局是二维的,那么常常使用二维数组来表示界面的元素,那么就需要使用二维的数组,在现在C++肯定是以标准库为基础了,不再使用C的二维数组,那么怎么样做呢?下面就使用vector来实现二维 ...

  6. 对线性模型进行最小二乘法学习的实例(使用三角多项式基函数 Python实现)

    该文为个人学习时的学习笔记.最小二乘法在统计学中需要验证数据的多重共性性等问题,需要做相关的假设检验,这里我们假设一切为理想状态. 最小二乘法   一个简单的应用就是进行线性模型的拟合,一般情况下我们 ...

  7. liunx的文件系统及相关的基本命令

    1.ls     当前目录列表 2.cd 切换 3.cd ..    返回上一级 4.cat 文件      显示文件内容 5.mkdir 文件夹名    创建一个新的文件夹 6.rmdir 文件夹名 ...

  8. Spring DI

    一.   Spring DI 依赖注入 利用spring IOC实例化了对象,而DI将实例化的对象注入到需要对象的地方,完成初始化任务. 对象由spring创建,之后再由spring给属性赋值 spr ...

  9. .NET 中使用 Mutex 进行跨越进程边界的同步

    Mutex 是 Mutual Exclusion 的缩写,是互斥锁,用于防止两个线程同时对计算机上的同一个资源进行访问.不过相比于其他互斥的方式,Mutex 能够跨越线程边界. 本文内容 Mutex ...

  10. arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别

    博客来之于:  http://www.veryarm.com/296.html 命名规则: 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - ...