CSS3渐变 CSS3颜色 CSS3阴影 渐变背景 CSS3 渐变使您能够是你的背景颜色在两个或多个颜色之间平滑过渡。 早些时候,你必须使用图像实现这些效果。 然而, 通过使用CSS3渐变可以减少下载时间和带宽的使用. 此外,缩放的元素在缩放时看起来更好,因为渐变是由浏览器生成的。. CSS3 定义了两种类型的渐变: 线性渐变(向下/向上/向左/向右/倾斜) 径向渐变 (由他们的中心定义) 浏览器支持 表中的数字指定完全支持该属性的第一个浏览器版本。 数字后面的 -webkit- 或者 -moz- 使用时需要指定前缀。 属性 linear-gradient 26.010.0 -webkit- 10.0 16.03.6 -moz- 6.15.1 -webkit- 12.111.1 -o- radial-gradient 26.010.0 -webkit- 10.0 16.03.6 -moz- 6.15.1 -webkit- 12.111.6 -o- repeating-linear-gradient 26.010.0 -webkit- 10.0 16.03.6 -moz- 6.15.1 -webkit- 12.111.1 -o- repeating-radial-gradient 26.010.0 -webkit- 10.0 16.03.6 -moz- 6.15.1 -webkit- 12.111.6 -o- CSS3 线性渐变 要创建线性渐变,必须定义至少两个颜色停止。颜色停止是你想要渲染平滑过渡之间的颜色。 您还可以设置一个起始点和一个方向(或角度)和渐变效果。 语法 background: linear-gradient(direction, color-stop1, color-stop2, ...); 线性渐变 - 顶部到底部(这是默认的) 下面的示例显示从顶部开始的线性渐变。它从开始的红色,过渡到黄色: 例如: #grad { background: red; /*对于那些不支持渐变的浏览器 */ background: -webkit-linear-gradient(red, yellow); /* Safari 5.1 到 6.0 */ background: -o-linear-gradient(red, yellow); /* Opera 11.1 到 12.0 */ background: -moz-linear-gradient(red, yellow); /* Firefox 3.6 到 15 */ background: linear-gradient(red, yellow); /* 标准语法 */ } 让我试试 线性渐变 - 左到右 下面的示例显示从左开始的线性渐变。它从开始的红色,过渡到黄色: 例如: #grad { background: red; /* 对于那些不支持渐变的浏览器 */ background: -webkit-linear-gradient(left, red , yellow); /* Safari 5.1 到 6.0 */ background: -o-linear-gradient(right, red, yellow); /*Opera 11.1 到 12.0 */ background: -moz-linear-gradient(right, red, yellow); /* Firefox 3.6 到 15 */ background: linear-gradient(to right, red , yellow); /* 标准语法 */ } 让我试试 线性渐变 - 对角线 可以通过指定水平和垂直起始位置来实现对角线渐变。 下面的示例显示从左上角开始的线性渐变(到右下角)。它开始红色,过渡到黄色: #grad { background: red; /* 对于那些不支持渐变的浏览器 */ background: -webkit-linear-gradient(left top, red, yellow); /* Safari 5.1 到 6.0 */ background: -o-linear-gradient(bottom right, red, yellow); /* Opera 11.1 到 12.0 */ background: -moz-linear-gradient(bottom right, red, yellow); /* Firefox 3.6 到 15 */ background: linear-gradient(to bottom right, red, yellow); /* 标准语法 */ } 让我试试 使用角度 如果你想在渐变方向上有更多的控制,你可以定义一个角度,而不是预定的方向(下、上、左、右等)。 语法 background: linear-gradient(angle, color-stop1, color-stop2); angle 是水平线和渐变线之间的角度。 下面的示例演示如何使用在线性渐变上使用角度: 例如: #grad { background: red; /* 对于那些不支持渐变的浏览器 */ background: -webkit-linear-gradient(-90deg, red, yellow); /* Safari 5.1 到 6.0 */ background: -o-linear-gradient(-90deg, red, yellow); /* Opera 11.1 到 12.0 */ background: -moz-linear-gradient(-90deg, red, yellow); /* Firefox 3.6 到 15 */ background: linear-gradient(-90deg, red, yellow); /* 标准语法 */ } 让我试试 使用多个停止颜色 下面的示例显示一个具有多个停止颜色的线性渐变(从上到下) 例如: #grad { background: red; /* 对于那些不支持渐变的浏览器 */ background: -webkit-linear-gradient(red, yellow, green); /* Safari 5.1 到 6.0 */ background: -o-linear-gradient(red, yellow, green); /* Opera 11.1 到 12.0 */ background: -moz-linear-gradient(red, yellow, green); /* Firefox 3.6 到 15 */ background: linear-gradient(red, yellow, green); /* 标准语法 */ } 让我试试 下面实例演示了如何使用彩虹颜色和一些文本来创建一个线性渐变(从左到右) 渐变背景 例如: #grad { background: red; /*对于那些不支持渐变的浏览器 */ /* Safari 5.1 到 6.0 */ background: -webkit-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); /* Opera 11.1 到 12.0 */ background: -o-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); /* Fx 3.6 到 15 */ background: -moz-linear-gradient(left,red,orange,yellow,green,blue,indigo,violet); /* Standard syntax */ background: linear-gradient(到 right, red,orange,yellow,green,blue,indigo,violet); } 让我试试 使用的透明度 CSS3 渐变也支持透明度,可以用来创建淡入淡出效果。 添加透明度,我们用rgba()函数来定义停止颜色。在rgba()函数的最后一个参数可以从0到1的值,并定义颜色的透明度:0表示完全透明,1表示完全的颜色(不透明度)。 下面的示例显示从左开始的线性渐变。它开始完全透明,过渡到全红色: #grad { background: red; /* 不支持渐变的浏览器 */ background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/ background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/ background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/ background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/ } 让我试试 重复线性渐变 repeating-linear-gradient() 函数用于重复线性渐变: 例如: #grad { background: red; /* 不支持渐变的浏览器 */ /* Safari 5.1 到 6.0 */ background: -webkit-repeating-linear-gradient(red, yellow 10%, green 20%); /* Opera 11.1 到 12.0 */ background: -o-repeating-linear-gradient(red, yellow 10%, green 20%); /* Firefox 3.6 到 15 */ background: -moz-repeating-linear-gradient(red, yellow 10%, green 20%); /* Standard syntax */ background: repeating-linear-gradient(red, yellow 10%, green 20%); } 让我试试 CSS3 径向渐变 径向渐变是由其中心定义的。 要创建径向渐变,还必须定义至少两个停止颜色。 语法 background: radial-gradient(shape size at position, start-color, ..., last-color); 默认情况下,形状是椭圆形,大小最远的角落,位置是中心。 径向渐变-均匀的间隔停止颜色 (默认) 下面的示例显示一个径向渐变,其颜色间隔均匀: #grad { background: red; /* browsers that do not support gradients */ background: -webkit-radial-gradient(red, yellow, green); /* Safari 5.1 到 6.0 */ background: -o-radial-gradient(red, yellow, green); /* Opera 11.6 到 12.0 */ background: -moz-radial-gradient(red, yellow, green); /* Firefox 3.6 到 15 */ background: radial-gradient(red, yellow, green); /* Standard syntax */ } 让我试试 径向渐变-不同间隔的停止颜色 下面的例子显示了一个具有不同间距的颜色渐变的径向渐变: #grad { background: red; /*不支持渐变的浏览器 */ background: -webkit-radial-gradient(red 5%, yellow 15%, green 60%); /* Safari 5.1-6.0 */ background: -o-radial-gradient(red 5%, yellow 15%, green 60%); /* Opera 11.6-12.0 */ background: -moz-radial-gradient(red 5%, yellow 15%, green 60%); /* Firefox 3.6-15 */ background: radial-gradient(red 5%, yellow 15%, green 60%); /* Standard syntax */ } 让我试试 设置形状 形状参数定义形状。它可以取值圆或椭圆。默认值为椭圆形。 下面的例子显示了一个圆形的径向渐变: #grad { background: red; /*不支持渐变的浏览器*/ background: -webkit-radial-gradient(circle, red, yellow, green); /* Safari */ background: -o-radial-gradient(circle, red, yellow, green); /* Opera 11.6 到 12.0 */ background: -moz-radial-gradient(circle, red, yellow, green); /* Firefox 3.6 到 15 */ background: radial-gradient(circle, red, yellow, green); /* 标准语法 */ } 让我试试 使用不同大小的关键词 size 参数定义渐变的大小。它可以接受四个值: closest-side farthest-side closest-corner farthest-corner 例如: #grad1 { background: red; /* 不支持渐变的浏览器 */ /* Safari 5.1 到 6.0 */ background: -webkit-radial-gradient(60% 55%, closest-side, red, yellow, black); /* Opera 11.6 到 12.0 */ background: -o-radial-gradient(60% 55%, closest-side, red, yellow, black); /* Firefox 3.6 到 15 */ background: -moz-radial-gradient(60% 55%, closest-side, red, yellow, black); /* Standard syntax */ background: radial-gradient(closest-side at 60% 55%, red, yellow, black); } #grad2 { /* Safari 5.1 到 6.0 */ background: -webkit-radial-gradient(60% 55%, farthest-side, red, yellow, black); /* Opera 11.6 到 12.0 */ background: -o-radial-gradient(60% 55%, farthest-side, red, yellow, black); /* Firefox 3.6 到 15 */ background: -moz-radial-gradient(60% 55%, farthest-side, red, yellow, black); /* Standard syntax */ background: radial-gradient(farthest-side at 60% 55%, red, yellow, black); } 让我试试 重复径向渐变 repeating-radial-gradient() 函数用于重复径向渐变: 例如: #grad { background: red; /*不支持渐变的浏览器*/ /* Safari 5.1 到 6.0 */ background: -webkit-repeating-radial-gradient(red, yellow 10%, green 15%); /* Opera 11.6 到 12.0 */ background: -o-repeating-radial-gradient(red, yellow 10%, green 15%); /* Firefox 3.6 到 15 */ background: -moz-repeating-radial-gradient(red, yellow 10%, green 15%); /* Standard syntax */ background: repeating-radial-gradient(red, yellow 10%, green 15%); } 让我试试 CSS3颜色 CSS3阴影