CSS3径向渐变函数radial-gradient()
本帖最后由 马黑黑 于 2022-1-2 10:45 编辑CSS3径向渐变函数radial-gradient() | 马黑黑
径向渐变实际上指椭圆渐变,渐变从圆心点位置以椭圆形状向外扩展。在CSS3中,radial-gradient()函数实现background的背景径向渐变,其语法构成分为两大部分:
语法:radial-gradient(形状,颜色)
例子:background-gradient(circle,red,green);
说明:
一、形状
radial-gradient支持的形状共两个:circle和ellipse,前者是正圆后者是椭圆(默认)。形状部分的语法还可包含渐变位置和渐变大小:
①渐变位置:默认从圆心点位置开始以椭圆状向外扩散。值用 at 引导跟在形状和大小值之后,值可用百分比(n%)、像素(npx)、关键字(left,top,right,bottom以及表示四个角的组合如右上角 right top 等)。当用百分比时指的是xy坐标值,如 20% 10% 和 100px 60px。
②渐变大小:有四个值可用,缺省值是最后一个:
closest-side:半径为从圆心到最近边
closest-corner:半径为从圆心到最近角
farthest-side:半径为从圆心到最远边
farthest-corner:半径为从圆心到最远角(缺省时默认值)
上述渐变大小值放在形状值之后,用空格与形状值隔开,随后才用 at 引入位置值。看例子:
background:radial-gradient(circle closest-side at 10% 10%,red,blue,green);
其实,除非需要,否则形状及其所带入的大小、位置均可省略,使用其默认值,故而上面的语句可简化为:
background:radial-gradient(red,blue,green);
二、颜色
参与渐变的颜色至少要有两个,可以是无限多个,还可以连续重复或间隔重复颜色,只要喜欢。颜色值之间用英文逗号隔开,最后一个叫结束颜色值,不能再跟逗号,其后是英文括号和分号就完事。
颜色值支持透明色,transparent可以直接代替某个颜色值,另外可以使用 rgba() 函数定义单一颜色的透明度:
rgba(255,0,0,0.2)
rgba() 函数由四个数组成,前三个是红(red)、绿(green)、蓝(blue)成分值,最后一个是透明度值(alpha):从0.1到1,1为不透明。
最后看实例加深理解:
<style type="text/css">
.kDiv {
width:100%; height:460px; padding:10px;
background:radial-gradient(circle farthest-side at top right,coral,red,orange,blue,yellow,green);
}
</style>
<div class="kDiv"></div>
本例,渐变形状为圆形(circle)、渐变大小是farthest-side,在右上角(top right)发起渐变,参与渐变的颜色有N多个。
<p>演示:<br> </p>
<style type="text/css">
.kDiv {
width:100%; height:460px; padding:10px;
background:radial-gradient(circle farthest-side at top right,coral,red,orange,blue,yellow,green);
}
</style>
<div class="kDiv"></div> <p>演示:<br> </p>
<div style="margin:0 auto; width:95%; height:460px; background:radial-gradient(circle at left top,red,transparent 10%,blue);"></div>
本帖最后由 马黑黑 于 2022-1-2 10:46 编辑
补充:参与渐变的颜色(包括透明色),还可以加入百分比,用以表示改颜色从渐变区域的那个百分比位置开始,从而压缩前一个颜色的结束位置。试看例子:
background:radial-gradient(red,orange 10%,green);
例中,橙色后面带10%,表示橙色从渐变区域10%的位置开始,则浅一个颜色红色在此处结束。 <div style="margin:0 auto; width:95%; height:450px; background:radial-gradient(circle,red,orange 10%,green);"></div>
5#代码:
<div style="margin:0 auto; width:95%; height:450px; background:radial-gradient(circle,red,orange 10%,green);"></div> <div style="margin:0 auto;widht:95%;height:450px;background:radial-gradient(circle at 100px 80px,rgba(255,0,0,1),rgba(0,0,0,0.1) 5%,rgba(200,200,120,0.8) 80%);"></div>
本帖最后由 马黑黑 于 2022-1-2 08:59 编辑
7#演示了 rgba() 函数的透明应用,另用颜色的区域开始值的百分比来控制颜色的总体分布:
<div style="margin:0 auto;widht:95%;height:450px;background:radial-gradient(circle at 100px 80px,rgba(255,0,0,1),rgba(0,0,0,0.1) 5%,rgba(200,200,120,0.8) 80%);"></div>style部分的CSS代码中,radial-gradient用于发生径向渐变:
① circle 表示圆形渐变,at 100px 80px 表示渐变发生的起点位置;
② 第一个 rgba 颜色透明度值是 1,不透明;第二个颜色是黑色但透明度是0.1,很大的透明度,它从5%开始加入渐变,故而前面的红色被压缩成一个小太阳;最后一个 rgba 颜色也设置了较小的透明度(0.8),它从渐变区域的80%开始,它参与渐变的区域是20%余下的部分。
“当用百分比时指的是xy坐标值,”
原来是这样,前面对这个百分比一种迷糊,现在明白了{:4_187:} 这个帖子太详细了,黑黑的讲述非常清楚。{:4_199:} 红影 发表于 2022-1-2 10:24
“当用百分比时指的是xy坐标值,”
原来是这样,前面对这个百分比一种迷糊,现在明白了
这里可能存在两个百分比:
一个是位置百分比,它表示圆点坐标(xy)起始值;
第二个是颜色百分比。如果颜色加入了百分比,表示这个颜色从哪里开始。 红影 发表于 2022-1-2 10:24
这个帖子太详细了,黑黑的讲述非常清楚。
希望不是越说越糊涂就好{:5_106:} 要学会运用不是看一遍可以领会的,小辣椒还在晕乎乎中 小辣椒 发表于 2022-1-2 12:43
要学会运用不是看一遍可以领会的,小辣椒还在晕乎乎中
弄懂原理需要些时间
页:
[1]