浅析重复线性渐变repeating-linear-gradient如何使用

  CSS3 线性渐变(linear-gradient)我们比较熟悉,但是有没有了解过重复线性渐变(repeating-linear-gradient)呢?

一、重复线性渐变介绍

  repeating-linear-gradient()函数创建一个由重复线性渐变组成的 。它类似于linear-gradient() 并采取相同的参数,但它重复的颜色停止无限的所有方向, 以覆盖其整个容器

1、语法结构

repeating-linear-gradient(  [ <angle> | to <side-or-corner> ,]? <color-stop> [,<color-stop>]+ )
                          \---------------------------------/\----------------------------/
                         Definition of the gradient line      List of color stops  

where <side-or-corner> = [left | right] || [top | bottom]
  and <color-stop>     = <color> [ <percentage> | <length>]?

2、参数介绍

(1)angle:渐变的角度,0deg到360deg,也可以是负数,默认值180deg。除了deg可以表示角度之外,turn、grad、rad,都可以表示角度。比如一个满圆360deg=1turn。

(2)side-or-corner:用方位来表示角度,比如 to top 表示0deg,to bottom 表示180deg,to right 表示90deg,to left 表示270deg。其实就是y轴的顺时针旋转。

  也可以 to left top 表示从右下到左上的对角线。to left bottom 表示从右上到左下的对角线。 默认是从上往下。

(3)color-stop:由颜色和位置组成。

  颜色是必须值,位置可以是固定像素值,也可以是百分比值。多个颜色用逗号隔开。

  比如: #ff8 50%,rgba(255,255,255, .6) 120px,transparent 12%等。

3、其实重复渐变有点像ps里面的填充图案,定义一个图案为基本单元,然后在一个区域里面进行平铺,达到重复的目的。

二、案例介绍

1、两个颜色构成一个基本单元,第一个颜色从0开始,第二个颜色占据容器高度的10%的位置。所以容器高,渐变条就高,与容器高度保持一致的变化。

// HTML:
<div class="box"></div>

// CSS:
html,body{
    height:100%;
}
body{
    background: repeating-linear-gradient(#a18cd1, #fbc2eb 10%);
}

2、三个颜色构成一个单元,加上角度。

html,body{
    height:100%;
}
body{
    background: repeating-linear-gradient(45deg,#3f87a6, #ebf8e1 15%, #f69d3c 20%);
}

3、颜色可以固定具体的位置,当结束颜色和下一个起始颜色的位置是一样,但颜色值不一样的时候,可以产生很生硬的过渡,如果两个不同颜色之间的距离越大,渐变越柔和。颜色单元的高度固定的时候,不随着容器的大小发生高度的变化,只是平铺多少的变化了。

body{
    background: repeating-linear-gradient(#ff9a9e, #fad0c4 40px,#eee 40px, #eee 50px);
}

4、可以直接用transparent表示透明。

.box{
    width:300px;
    height:260px;
    margin:20px auto;
    background: repeating-linear-gradient(transparent,transparent 10px, rgba(245,219,203,.5) 10px, rgba(245,219,203,.5)
     20px), url(images/fengjing.jpg); 
}

  意思是 0 - 10px 是透明,10px - 20px 是 rgba(245,219,203,.5)

三、实例实现

  这样一个效果如何实现呢?

  有了上面的知识背景,那么实现就比较简单咯。分析下:1. 底图颜色是线性渐变的;2. 中间有固定的间隔(重复线性渐变:透明色和中间颜色间隔重复)

posted @ 2022-05-06 22:32  古兰精  阅读(749)  评论(0编辑  收藏  举报