美文网首页
新手都能做效果系列之——CSS3 渐变

新手都能做效果系列之——CSS3 渐变

作者: 锋享前端 | 来源:发表于2018-11-13 09:46 被阅读0次

    今天写一点比较炫酷的属性:CSS3 渐变(gradient);css渐变是课可以做什么呢?他可以让你在两个或多个指定的颜色之间显示平稳的过渡。先上图:


    渐变.png

    代码竟然能实现这种效果是不是感到能兴奋?话不多少讲代码:

    1、线性渐变

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

    说明:
    direction:默认为to bottom,即从上向下的渐变;
    stop:颜色的分布位置,默认均匀分布,例如有3个颜色,各个颜色的stop均为33.33%。

    示例1:
    to left、top right、to bottom、to top

    div { background:linear-gradient(to left, red , blue) }
    div { background:linear-gradient(to right, red , blue) }
    div { background:linear-gradient(to bottom, red , blue) } /* 浏览器默认值 */
    div { background:linear-gradient(to top, red , blue) }

    分别产生“从右到左”、“从左到右”、“从上到下”、“从下到上”的“红色–蓝色”渐变;图如下:

    渐变1.png
    上面的图是不是感觉缺什么?你是不是在想能不能斜着来?答案是肯定的:
    示例2:
    to right bottom、top right top、top left bottom、top left top

    div { background: linear-gradient(to right bottom, red , blue); }
    div { background: linear-gradient(to right top, red , blue); }
    div { background: linear-gradient(to left bottom, red , blue); }
    div { background: linear-gradient(to left top, red , blue); }

    分别产生到“右下角”、“右上角”、“左下角”、“左上角”的渐变


    渐变1.png

    当然还可使用角度渐变:
    示例3:使用角度渐变

    div { background: linear-gradient(10deg, red, blue) }

    image.png

    角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。

    但是,请注意很多浏览器(Chrome,Safari,fiefox等)的使用了旧的标准,即 0deg 将创建一个从左到右的渐变,90deg 将创建一个从下到上的渐变。换算公式 90 - x = y 其中 x 为标准角度,y为非标准角度。

    2、径向渐变

    径向渐变不同于线性渐变,线性渐变是从“一个方向”向“另一个方向”的颜色渐变,而径向渐变是从“一个点”向四周的颜色渐变;
    语法:

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

    说明:

    center:渐变起点的位置,可以为百分比,默认是图形的正中心。
    shape:渐变的形状,ellipse表示椭圆形,circle表示圆形。默认为ellipse,如果元素形状为正方形的元素,则ellipse和circle显示一样。
    size:渐变的大小,即渐变到哪里停止,它有四个值。 closest-side:最近边; farthest-side:最远边; closest-corner:最近角; farthest-corner:最远角。

    示例1:多颜色点均匀分布

    div { background: radial-gradient(red, green, blue); }


    以中心(50% 50%)为起点,到最远角(farthest-corner),从red到green、blue的均匀渐变

    示例2:多颜色节点不均匀分布

    div { background: radial-gradient(red 5%, green 15%, blue 60%); }

    径向渐变.png

    示例3:[图片上传中...(径向渐变.png-be6116-1542072716954-0)]
    设置渐变形状

    div { background: radial-gradient(circle, red, yellow, green); }
    div { background: radial-gradient(ellipse, red, yellow, green); }

    径向渐变.png

    示例4:不同尺寸的渐变
    size指定了渐变的大小,即渐变到哪里停止,它有四个值。 closest-side:最近边; farthest-side:最远边; closest-corner:最近角; farthest-corner:最远角

    div { background: radial-gradient(60% 40%, closest-side, blue, green, yellow, black); }
    div { background: radial-gradient(60% 40%, farthest-side, blue, green, yellow, black); }
    div { background: radial-gradient(60% 40%, closest-corner, blue, green, yellow, black); }
    div { background: radial-gradient(60% 40%, farthest-corner, blue, green, yellow, black); }

    径向渐变2.png

    3、重复渐变

    案例1:重复性线性渐变

    div { background: repeating-linear-gradient(red, yellow 10%, green 20%); }

    说明:10%的位置为yellow,20%的位置为green,然后按照这20%向下重复

    重复渐变.png

    案例2:重复性径向渐变

    div { background: repeating-radial-gradient(red, yellow 10%, green 20%); }

    重复渐变2.png

    是不是觉得很炫酷?但是这么多变化,这么多属性和属性值;怎么记得住?没关系收藏这个文档,当你需要用的时候翻出来,一看便知;

    相关文章

      网友评论

          本文标题:新手都能做效果系列之——CSS3 渐变

          本文链接:https://www.haomeiwen.com/subject/xdthfqtx.html