CSS3渐变语法是CSS3中新增的一种样式,它可以使用渐变色来渲染元素,从而使元素看起来更加美观。CSS3渐变语法有两种形式:线性渐变和径向渐变。
首先,我们来看一下CSS3中的线性渐变语法。它的语法如下所示:
background: linear-gradient(direction, color-stop1, color-stop2, ...);
其中direction表示方向,color-stop1、color-stop2表示颜色停止位置,它们之间用逗号分隔。例如:
background: linear-gradient(to right, #FF0000 0%, #00FF00 100%);
上面这行代码表明了从左到右的一个从#FF0000到#00FF00的颜色过度。此外,我们还可以使用多个颜色停止位置来实现多个颜色之间的过度效果。例如:
background: linear-gradient(to right, #FF0000 0%, #FFFF00 50%, #00FF00 100%);
上面这行代码表明了从左到右的一个从#FF0000到#FFFF00再到#00FF00的颜色过度效果。此外,我们也可以使用deg、rad、turn三者之一来表明方向。例如:
background: linear-gradient(45deg, #FF0000 0%, #FFFF00 50%, #00FF00 100%);
上面这行代码表明了45度方向上的一个从#FF0000到#FFFF00再到#00FF00的颜色过度效果。
其次是CSS3中径向渐变语法。它的语法如下所示:
background: radial-gradient(shape size at position, start-color, ..., last-color);
其中shape size at position是必要部分,start-color、last-color是必要部分;shape有circle和ellipse两者之一选填;size有closest-side、farthest-side、closest-corner、farthest -corner四者之一选填;position有center center、top left 等四者之一选填;start -color、last -color是开始颜色和最后颜色必填;中间也可加入多项不同位置不同颜色逗号隔开即可。例如: p >
< pre > background : radial - gradient ( circle closest - side at top left , # FF0000 , # 00 FF 00 ); pre >
< p >上 面 这 行 代 码 表 明 了 左 上 角 由 内 到 外 由 # FF 0000 到 # 00 FF 00 的 颜 色 渐 变 效 果 。 p >
CSS渐变是CSS3图像模块中添加的新类型的图像。
CSS渐变允许您在两个或多个指定颜色之间显示平滑过渡。
浏览器支持两种类型的渐变:
linear-gradient()
函数定义, radial-gradient()
函数定义.要创建线性渐变,我们将起点和方向设置为角度。
我们还定义颜色停止。颜色停止是渲染平滑过渡的颜色。我们必须指定至少两个停止颜色。
这里是一个线性渐变,从中心(水平)和顶部(垂直)开始,并开始蓝色,过渡到白色。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: -moz-linear-gradient(top, red, white);
background: -moz-linear-gradient(to bottom, red, white);
background: -ms-linear-gradient(top, red, white);
background: -o-linear-gradient(top, red, white);
background: -webkit-linear-gradient(top, red, white);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
更改相同的渐变从左到右运行:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: -moz-linear-gradient(left, red, white);
background: -moz-linear-gradient(to right, red, white);
background: -ms-linear-gradient(left, red, white);
background: -o-linear-gradient(left, red, white);
background: -webkit-linear-gradient(left, red, white);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
要使渐变沿对角线运行,请指定水平和垂直起始位置。
例如:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: -moz-linear-gradient(left top, red, white);
background: -moz-linear-gradient(to bottom right, red, white);
background: -ms-linear-gradient(left top, red, white);
background: -o-linear-gradient(left top, red, white);
background: -webkit-linear-gradient(left top, red, white);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
没有角度,浏览器将根据给定的方向自动确定值。
我们可以专门设置角度来控制渐变的方向。以下代码显示如何设置角度。
background: linear-gradient(70deg, black, white);
例如,这里是两个梯度,第一个具有朝向右边的方向,第二个具有70度的角度。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: linear-gradient(70deg, black, white);
}
#grad2 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: linear-gradient(black, white);
}
</style>
</head>
<body>
<div id="grad1"></div>
<div id="grad2"></div>
</body>
</html>
上面的代码呈现如下:
上面的代码呈现如下:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 100px;
background: -webkit-linear-gradient(0deg, red, white);
background: -o-linear-gradient(0deg, red, white);
background: -moz-linear-gradient(0deg, red, white);
background: linear-gradient(0deg, red, white);
}
#grad2 {
height: 100px;
background: -webkit-linear-gradient(90deg, red, white);
background: -o-linear-gradient(90deg, red, white);
background: -moz-linear-gradient(90deg, red, white);
background: linear-gradient(90deg, red, white);
}
#grad3 {
height: 100px;
background: -webkit-linear-gradient(180deg, red, white);
background: -o-linear-gradient(180deg, red, white);
background: -moz-linear-gradient(180deg, red, white);
background: linear-gradient(180deg, red, white);
}
#grad4 {
height: 100px;
background: -webkit-linear-gradient(-90deg, red, white);
background: -o-linear-gradient(-90deg, red, white);
background: -moz-linear-gradient(-90deg, red, white);
background: linear-gradient(-90deg, red, white);
}
</style>
</head>
<body>
<div id="grad1" style="color:white;text-align:center;">0deg</div><br>
<div id="grad2" style="color:white;text-align:center;">90deg</div><br>
<div id="grad3" style="color:white;text-align:center;">180deg</div><br>
<div id="grad4" style="color:white;text-align:center;">-90deg</div>
</body>
</html>
上面的代码呈现如下:
颜色停止沿着渐变线定义在该位置具有特定颜色的点。
位置可以指定为线的长度的百分比,或绝对长度。
您可以指定与您一样多的停止点。
要以百分比形式指定位置,0%表示起点,而100%表示结束点。
要创建效果,我们可以在必要时使用该范围之外的值。
此示例指定三个停止点:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: -moz-linear-gradient(center top , blue, white 60%, red);
background: -moz-linear-gradient(to bottom, blue, white 60%, red);
background: -ms-linear-gradient(center top , blue, white 60%, red);
background: -o-linear-gradient(center top , blue, white 60%, red);
background: -webkit-linear-gradient(top , blue, white 60%, red);
background: linear-gradient(to bottom, blue, white 60%, red);
}
</style>
</head>
<body>
<div id="grad1"></div>
<div id="grad2"></div>
</body>
</html>
上面的代码呈现如下:
这里有一个使用各种颜色的示例,所有颜色均匀分布:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
width: 100px;
height: 100px;
border: 1px solid rgb(51, 51, 51);
background: -moz-linear-gradient(left, red, orange, yellow, green, blue) repeat scroll 0% 0% transparent;
background: -moz-linear-gradient(to right, red, orange, yellow, green, blue) repeat scroll 0% 0% transparent;
background: -ms-linear-gradient(left, red, orange, yellow, green, blue) repeat scroll 0% 0% transparent;
background: -o-linear-gradient(left, red, orange, yellow, green, blue) repeat scroll 0% 0% transparent;
background: -webkit-linear-gradient(left, red, orange, yellow, green, blue) repeat scroll 0% 0% transparent;
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
CSS渐变支持透明度。
为了增加透明度,我们使用 rgba()
函数定义颜色停止。
rgba()
函数中的最后一个参数可以是从0到1的值。它定义颜色的透明度:0表示完全透明,1表示完全不透明。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 200px;
background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
径向梯度使用 radial-gradient()
函数来指定。
它的语法与线性渐变类似,只不过您可以指定渐变的结束形状,圆形或椭圆形以及其大小。
默认情况下,结束形状是一个椭圆,其比例与容器的框相同。
以下代码显示了具有均匀间隔的色彩停止的径向渐变。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 200px;
width: 200px;
background: -webkit-radial-gradient(red, green, yellow);
background: -o-radial-gradient(red, green, yellow);
background: -moz-radial-gradient(red, green, yellow);
background: radial-gradient(red, green, yellow);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
以下代码显示了如何创建具有不同间隔色停的径向梯度。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 150px;
width: 200px;
background: -webkit-radial-gradient(red 5%, green 15%, yellow 60%);
background: -o-radial-gradient(red 5%, green 15%, yellow 60%);
background: -moz-radial-gradient(red 5%, green 15%, yellow 60%);
background: radial-gradient(red 5%, green 15%, yellow 60%);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
shape参数定义径向梯度的形状。
它可以取值 circle
或 ellipse
。默认值为 ellipse
。
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 150px;
width: 200px;
background: -webkit-radial-gradient(red, yellow, green);
background: -o-radial-gradient(red, yellow, green);
background: -moz-radial-gradient(red, yellow, green);
background: radial-gradient(red, yellow, green);
}
#grad2 {
height: 150px;
width: 200px;
background: -webkit-radial-gradient(circle, red, yellow, green);
background: -o-radial-gradient(circle, red, yellow, green);
background: -moz-radial-gradient(circle, red, yellow, green);
background: radial-gradient(circle, red, yellow, green);
}
</style>
</head>
<body>
<p>Ellipse (this is default):</p>
<div id="grad1"></div>
<p>Circle:</p>
<div id="grad2"></div>
</body>
</html>
上面的代码呈现如下:
椭圆(这是默认值):
圆:
我们可以使用size参数定义径向渐变的大小。
径向渐变的大小可以取四个值:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 150px;
width: 150px;
background: radial-gradient(closest-side at 60% 55%,blue,green,yellow,red);
}
#grad2 {
height: 150px;
width: 150px;
background: radial-gradient(farthest-side at 60% 55%,blue,green,yellow,red);
}
#grad3 {
height: 150px;
width: 150px;
background: radial-gradient(closest-corner at 60% 55%,blue,green,yellow,red);
}
#grad4 {
height: 150px;
width: 150px;
background: radial-gradient(farthest-corner at 60% 55%,blue,green,yellow,red);
}
</style>
</head>
<body>
<p><strong>closest-side:</strong></p>
<div id="grad1"></div>
<p><strong>farthest-side:</strong></p>
<div id="grad2"></div>
<p><strong>closest-corner:</strong></p>
<div id="grad3"></div>
<p><strong>farthest-corner (this is default):</strong></p>
<div id="grad4"></div>
</body>
</html>
上面的代码呈现如下:
closest-side:
farthest-side:
closest-corner:
farthest-corner (this is default):
linear-gradient()
和 radial-gradient()
不要重复停止。
repeating-linear-gradient()
和 repeating-radial-gradient()
可以重复梯度。
此示例使用 repeating-linear-gradient()
创建渐变:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 150px;
width: 200px;
background: repeating-linear-gradient(-45deg, yellow, yellow 5px, white 5px, white 10px);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
此示例使用 repeating-radial-gradient()
创建渐变:
<!DOCTYPE html>
<html>
<head>
<style>
#grad1 {
height: 150px;
width: 200px;
background: repeating-radial-gradient(red, red 5px, white 5px, white 10px);
}
</style>
</head>
<body>
<div id="grad1"></div>
</body>
</html>
上面的代码呈现如下:
HTML button 标签form 属性可以规定 button 元素属于哪个表单,请参考下述示例:实例位于表单之外的提交按钮(但是仍然是表单中的...
SQLLOWER()函数 SQL lower()字母大小写转换函数,将字母转成小写 - 返回根据当前字符集映射所有字符改变为小写,即返回小写的字...
SQL DELETE 语句 DELETE语句用于删除表中现有记录。SQL DELETE 语法DELETE FROM table_nameWHERE condition;请注意删除...
简介 C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。 这些函数接受 int 作为参数,它的值必须是 EOF 或表示...
二、清晰明确一旦用户进入我们的小程序页面,就有责任和义务清晰明确告知用户身在何处、又可以往何处去,确保用户在页面中游刃有...