一篇文章带你了解CSS 渐变知识

CSS3 渐变使您能够是你的背景颜色在两个或多个颜色之间平滑过渡。

早些时候,你必须使用图像实现这些效果。 然而, 通过使用CSS3渐变可以减少下载时间和带宽的使用. 此外,缩放的元素在缩放时看起来更好,因为渐变是由浏览器生成的。


一、浏览器支持

表中的数字指定完全支持该属性的第一个浏览器版本。(来源于百度)

数字后面的 -webkit- 或者 -moz- 使用时需要指定前缀。

属性

Chrome

Firefox

Safari

Opera

IE

linear-gradient

26.0 10.0 -webkit-

10.0

16.0 3.6 -moz-

6.1 5.1 -webkit-

12.1 11.1 -o-

radial-gradient

26.0 10.0 -webkit-

10.0

16.0 3.6 -moz-

6.1 5.1 -webkit-

12.1 11.6 -o-

repeating-linear-gradient

26.0 10.0 -webkit-

10.0

16.0 3.6 -moz-

6.1 5.1 -webkit-

12.1 11.1 -o-

repeating-radial-gradient

26.0 10.0 -webkit-

10.0

16.0 3.6 -moz-

6.1 5.1 -webkit-

12.1 11.6 -o-


二、CSS3 线性渐变(向下/向上/向左/向右/倾斜)

要创建线性渐变,必须定义至少两个颜色停止。颜色停止是你想要渲染平滑过渡之间的颜色。 您还可以设置一个起始点和一个方向(或角度)和渐变效果。

语法:

background: linear-gradient(direction, color-stop1, color-stop2, ...); 

HTML代码:

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>项目</title> 6 7</head> 8<body> 9 10 <div id="grad1"></div> 11</body> 12</html>

例如:

线性渐变 - 上到下

显示从顶部开始的线性渐变。它从开始的红色,过渡到黄色:

1<style> 2 #grad1 { 3 height: 200px; 4 background: blue; /* 对于那些不支持渐变的浏览器 */ 5 background: -webkit-linear-gradient(blue, yellow); /* Safari 5.1 到 6.0 */ 6 background: -o-linear-gradient(blue, yellow); /* Opera 11.1 到 12.0 */ 7 background: -moz-linear-gradient(blue, yellow); /* Firefox 3.6 到 15 */ 8 background: linear-gradient(blue, yellow); /* 标准语法 (必须是最后一个) */ 9 } 10</style>

线性渐变 - 左到右

例如:

显示从左开始的线性渐变。它从开始的红色,过渡到黄色

1<style> 2 #grad1 { 3 height: 200px; 4 background: blue; /* 对于那些不支持渐变的浏览器 */ 5 background: -webkit-linear-gradient(left, blue , yellow); /* Safari 5.1 到 6.0 */ 6 background: -o-linear-gradient(right, blue, yellow); /* Opera 11.1 到 12.0 */ 7 background: -moz-linear-gradient(right, blue, yellow); /* Firefox 3.6 到 15 */ 8 background: linear-gradient(to right, blue , yellow); /* 标准语法 (必须是最后一个) */ 9 } 10</style>

线性渐变 - 对角线

可以通过指定水平和垂直起始位置来实现对角线渐变。

下面的示例显示从左上角开始的线性渐变(到右下角)。它开始红色,过渡到黄色:

1<style> 2 #grad1 { 3 height: 200px; 4 background: blue; /*对于那些不支持渐变的浏览器 */ 5 background: -webkit-linear-gradient(left top, blue, yellow); /* Safari 5.1 到 6.0 */ 6 background: -o-linear-gradient(bottom right, blue, yellow); /* Opera 11.1 到 12.0 */ 7 background: -moz-linear-gradient(bottom right, blue, yellow); /* Firefox 3.6 到 15 */ 8 background: linear-gradient(to bottom right, blue, yellow); /* 标准语法(必须是最后一个) */ 9 } 10</style>


1. 使用角度

如果你想在渐变方向上有更多的控制,你可以定义一个角度,而不是预定的方向(下、上、左、右等)。

语法

background: linear-gradient(angle, color-stop1, color-stop2); 

下面的示例演示如何使用在线性渐变上使用角度:

例如:

1#grad { 2 width: 100%; 3 height: 100px; 4 background: blue; /* 对于那些不支持渐变的浏览器 */ 5 background: -webkit-linear-gradient(-90deg, blue, yellow); /* Safari 5.1 到 6.0 */ 6 background: -o-linear-gradient(-90deg, blue, yellow); /* Opera 11.1 到 12.0 */ 7 background: -moz-linear-gradient(-90deg, blue, yellow); /* Firefox 3.6 到 15 */ 8 background: linear-gradient(-90deg, blue, yellow); /* 标准语法 */ 9}


2. 使用多个停止颜色

下面的示例显示一个具有多个停止颜色的线性渐变(从上到下)

例如:

1#grad { 2 background: blue; /* 对于那些不支持渐变的浏览器 */ 3 background: -webkit-linear-gradient(blue, yellow, green); /* Safari 5.1 到 6.0 */ 4 background: -o-linear-gradient(blue, yellow, green); /* Opera 11.1 到 12.0 */ 5 background: -moz-linear-gradient(blue, yellow, green); /* Firefox 3.6 到 15 */ 6 background: linear-gradient(blue, yellow, green); /* 标准语法 */ 7}

下面实例演示了如何使用彩虹颜色和一些文本来创建一个线性渐变(从左到右)

渐变背景

例如:

1#grad { 2 background: blue; /*对于那些不支持渐变的浏览器 */ 3 /* Safari 5.1 到 6.0 */ 4 background: -webkit-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); 5 /* Opera 11.1 到 12.0 */ 6 background: -o-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); 7 /* Fx 3.6 到 15 */ 8 background: -moz-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); 9 /* Standard syntax */ 10 background: linear-gradient(到 right, red,orange,yellow,green,blue,indigo,violet); 11}


3. 使用的透明度

CSS3 渐变也支持透明度,可以用来创建淡入淡出效果。

添加透明度,我们用rgba()函数来定义停止颜色。在rgba()函数的最后一个参数可以从0到1的值,并定义颜色的透明度:0表示完全透明,1表示完全的颜色(不透明度)。

下面的示例显示从左开始的线性渐变。它开始完全透明,过渡到全红色:

1#grad { 2 background: blue; /* 不支持渐变的浏览器 */ 3 background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/ 4 background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/ 5 background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/ 6 background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/ 7}


4. 重复线性渐变

repeating-linear-gradient() 函数用于重复线性渐变:

例如:

1#grad { 2 background: blue; /* 不支持渐变的浏览器 */ 3 /* Safari 5.1 到 6.0 */ 4 background: -webkit-repeating-linear-gradient(blue, yellow 10%, green 20%); 5 /* Opera 11.1 到 12.0 */ 6 background: -o-repeating-linear-gradient(blue, yellow 10%, green 20%); 7 /* Firefox 3.6 到 15 */ 8 background: -moz-repeating-linear-gradient(blue, yellow 10%, green 20%); 9 /* Standard syntax */ 10 background: repeating-linear-gradient(blue, yellow 10%, green 20%); 11}


三、CSS3 径向渐变 (由中心定义)

径向渐变是由其中心定义的。

要创建径向渐变,还必须定义至少两个停止颜色。

语法

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

径向渐变-均匀的间隔停止颜色 (默认)

下面的示例显示一个径向渐变,其颜色间隔均匀:

1#grad { 2 background: blue; /* browsers that do not support gradients */ 3 background: -webkit-radial-gradient(blue, yellow, green); /* Safari 5.1 到 6.0 */ 4 background: -o-radial-gradient(blue, yellow, green); /* Opera 11.6 到 12.0 */ 5 background: -moz-radial-gradient(blue, yellow, green); /* Firefox 3.6 到 15 */ 6 background: radial-gradient(blue, yellow, green); /* Standard syntax */ 7}

径向渐变-不同间隔的停止颜色

下面的例子显示了一个具有不同间距的颜色渐变的径向渐变:

1#grad { 2 background: blue; /*不支持渐变的浏览器 */ 3 background: -webkit-radial-gradient(blue 5%, yellow 15%, green 60%); /* Safari 5.1-6.0 */ 4 background: -o-radial-gradient(blue 5%, yellow 15%, green 60%); /* Opera 11.6-12.0 */ 5 background: -moz-radial-gradient(blue 5%, yellow 15%, green 60%); /* Firefox 3.6-15 */ 6 background: radial-gradient(blue 5%, yellow 15%, green 60%); /* Standard syntax */ 7}


1. 设置形状

形状参数定义形状。它可以取值圆或椭圆。默认值为椭圆形。

下面的例子显示了一个圆形的径向渐变:

1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>项目</title> 6 <style> 7 #grad1 { 8 height: 150px; 9 width: 200px; 10 background: -webkit-radial-gradient(blue, yellow, green); 11 /* Safari 5.1 到 6.0 */ 12 background: -o-radial-gradient(blue, yellow, green); 13 /* Opera 11.6 到 12.0 */ 14 background: -moz-radial-gradient(blue, yellow, green); 15 /* Fx 3.6 到 15 */ 16 background: radial-gradient(blue, yellow, green); 17 /* 标准语法(必须是最后一个) */ 18 } 19 20 #grad2 { 21 height: 150px; 22 width: 200px; 23 background: -webkit-radial-gradient(circle, blue, yellow, green); 24 /* Safari 5.1 到 6.0 */ 25 background: -o-radial-gradient(circle, blue, yellow, green); 26 /* Opera 11.6 到 12.0 */ 27 background: -moz-radial-gradient(circle, blue, yellow, green); 28 /* Fx 3.6 到 15 */ 29 background: radial-gradient(circle, blue, yellow, green); 30 /* 标准语法(必须是最后一个) */ 31 } 32</style> 33 </head> 34 <body> 35 36 <h3>径向渐变-形状</h3> 37 38 <p><strong>椭圆(这是默认值):</strong></p> 39 <div id="grad1"></div> 40 41 <p><strong>:</strong></p> 42 <div id="grad2"></div> 43 44 <p><strong>注意:</strong> Internet Explorer 9 和早期的版本不支持渐变。</p> 45 46 </body> 47</html>

2. 重复径向渐变

repeating-radial-gradient() 函数用于重复径向渐变:

例如:

1#grad { 2 background: blue; /*不支持渐变的浏览器*/ 3 /* Safari 5.1 到 6.0 */ 4 background: -webkit-repeating-radial-gradient(blue, yellow 10%, green 15%); 5 /* Opera 11.6 到 12.0 */ 6 background: -o-repeating-radial-gradient(blue, yellow 10%, green 15%); 7 /* Firefox 3.6 到 15 */ 8 background: -moz-repeating-radial-gradient(blue, yellow 10%, green 15%); 9 /* Standard syntax */ 10 background: repeating-radial-gradient(blue, yellow 10%, green 15%); 11}

四、总结

本文基于html基础, 通过对css中渐变效果做了详细的讲解,介绍来了常见的两种渐变方式。通过丰富的案例让大家能够更好的去了解,去体会渐变的用法,希望可以帮助大家更好的学习。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用