百科狗-知识改变命运!
--

linear-gradient() - 线性渐变 - css 渐变

梵高1年前 (2023-11-21)阅读数 20#技术干货
文章标签颜色

linear-gradient()

版本:CSS3

CSS linear-gradient()函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于数据类型,是一种特别的数据类型。

示例

/* 渐变轴为45度,从蓝色渐变到红色 */
linear-gradient(45deg, blue, red);

/* 从右下到左上、从蓝色渐变到红色 */
linear-gradient(to left top, blue, red);

/* 从下到上,从蓝色开始渐变、到高度40%位置是绿色渐变开始、最后以红色结束 */
linear-gradient(0deg, blue, green 40%, red);

浏览器支持

IE10以上版本浏览器都支持linear-gradient

线性渐变的语法

linear-gradient(,)linear-gradient(to,)
  • :渐变线的方向角。值0deg等于to top;递增的值从那里顺时针旋转。
  • :渐变线起点的位置。如果指定,则由单词to和最多两个关键字组成:一个指示水平边(left或right),另一个指示垂直边(top或bottom)。边关键字的顺序无关紧要。如果未指定,则默认为to bottom。值:to top,to bottom,to left,和to right等同于角度0deg,180deg,270deg,和90deg,分别。其他值转换为角度。

线性渐变的组成

线性渐变由一条轴(渐变线)和两个或多个颜色停止点定义。轴上的每个点都有不同的颜色;为了创建平滑的渐变,该linear-gradient()函数绘制了一系列与渐变线垂直的彩色线,每个彩色线都与渐变线相交的点的颜色匹配。

渐变线由包含渐变图像的框的中心和角度定义。渐变的颜色由两个或多个点确定:起点,终点以及中间的可选颜色停止点。

起点是在所述第一颜色开始渐变线的位置。终点是点最后颜色的结束位置。这两个点中的每一个都由渐变线与从位于同一象限的框角经过的垂直线的交点定义。终点可以简单地理解为起点的对称点。这些有点复杂的定义会产生有趣的效果,有时也称为魔术角:最接近起点和终点的角与各自的起点或终点具有相同的颜色。

自定义渐变

通过在渐变线上添加更多颜色停止点,可以在多种颜色之间创建高度自定义的过渡。可以使用或明确定义色标的位置。如果您未指定颜色的位置,则将其放置在颜色之前和之后的中间位置。以下两个梯度是等效的。

linear-gradient(red, orange, yellow, green, blue); 
linear-gradient(red 0%, orange 25%, yellow 50%, green 75%, blue 100%);

默认情况下,颜色从一个色标处的颜色平滑过渡到下一个色标处的颜色,颜色之间的中点是颜色过渡之间的中点。您可以通过在两种颜色之间添加未标记的%颜色提示来指示该颜色过渡的中间位置,从而将该中点移动到两个色标之间的任何位置。以下示例从开始到10%标记是红色,从90%到结尾是蓝色。在10%到90%之间,颜色从红色过渡到蓝色,但是过渡的中点位于30%的标记处,而不是没有30%的颜色提示时发生的过渡的50%。

linear-gradient(red 10%, 30%, blue 90%);

如果两个或多个色标位于同一位置,则过渡将是在该位置声明的第一个和最后一个颜色之间的一条硬线。

色标应按升序列出。随后的较低色标的色标将覆盖先前色标的值,从而创建硬过渡。接下来的30%标记从红色变为黄色,然后在梯度的35%上从黄色变为蓝色

linear-gradient(red 40%, yellow 30%, blue 65%);

允许多位置色标。通过在CSS声明中同时包含两个位置,可以将一种颜色声明为两个相邻的色标。以下三个渐变是等效的:

linear-gradient(red 0%, orange 10%, orange 30%, yellow 50%, yellow 70%, green 90%, green 100%);
linear-gradient(red, orange 10% 30%, yellow 50% 70%, green 90%);
linear-gradient(red 0%, orange 10% 30%, yellow 50% 70%, green 90% 100%);

默认情况下,如果没有停止颜色为0%的颜色,则声明的第一个颜色将在该点。同样,最后一个颜色将继续到100%标记,如果最后一个停止点上没有声明长度,则最后一个颜色将在100%标记处。

线性渐变(linear-gradient)

实现线性渐变,你至少需要定义两种颜色的结点,这两种结点就是你想平稳过渡的颜色,即:其中一种颜色结点为起点,另一种颜色结点为结束点。

书写:

background: linear-gradient(color1,color2);
  • color1为起点结点,color2为结束点结点。


同时也可以定义渐变的方向,是从上到下渐变,还是从左至右渐变,或者从右至左渐变,默认情况下是从上至下渐变的。

书写:

background: linear-gradient(direction,color1,color2);
  • direction表示渐变的方向,此值直接写方向的起点即可,如:渐变方向为从左至右,直接写left即可,渐变方向为从下至上,直接写bottom即可。

当然也可以对角渐变,如:从左上角到右下角

书写:

background: linear-gradient(left top,color1,color2);

默认渐变方向是从上至下渐变:

 渐变(gradients)属性


  div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(red,blue);
	background: -o-linear-gradient(red,blue);
	background: -moz-linear-gradient(red,blue);
	background: -mos-linear-gradient(red,blue);
	background: linear-gradient(red,blue);
  } 

效果如下:

现在定义渐变方向为从右至左:

 渐变(gradients)属性


  div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(right,red,blue);
	background: -o-linear-gradient(right,red,blue);
	background: -moz-linear-gradient(right,red,blue);
	background: -mos-linear-gradient(right,red,blue);
	background: linear-gradient(right,red,blue);
  } 

效果如下:

linear-gradient() - 线性渐变 - css 渐变


对角渐变--右下角至左上角:

 渐变(gradients)属性


  div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(left bottom,red,blue);
	background: -o-linear-gradient(left bottom,red,blue);
	background: -mos-linear-gradient(left bottom,red,blue);
	background: -moz-linear-gradient(left bottom,red,blue);
	background: linear-gradient(left bottom,red,blue);
	
  } 

效果如下:



对角渐变--右下角到左上角:

div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(right bottom,red,blue);
	background: linear-gradient(right bottom,red,blue);	
  }

效果如下:


角度渐变

如果还想更多地控制渐变方向,可以改变渐变的角度。
书写:

background: linear-gradient(angle,color1,color2);

角度是指水平线与渐变线之间的角度,是逆时针的。

 渐变(gradients)属性


  div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(0deg,red,blue);
	background: linear-gradient(0deg,red,blue);	
  } 


渐变时,也可以使用多个颜色。

 渐变(gradients)属性


  div {
    width: 400px;
	height: 200px;
	background: -webkit-linear-gradient(left,red,blue,yellow,orange);
	background: -o-linear-gradient(left,red,blue,yellow,orange);
	background: -mos-linear-gradient(left,red,blue,yellow,orange);
	background: -moz-linear-gradient(left,red,blue,yellow,orange);
	background: linear-gradient(left,red,blue,yellow,orange);
	
  } 

效果如下:

在渐变中使用透明度

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)