【css】linear-gradient()

linear-gradient()

linear-gradient,创建两种或多种颜色线性渐变的图片。

<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: linear-gradient(gold,blue);
}

在这里插入图片描述

在这里插入图片描述

横条纹
两种颜色
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-color:lightskyblue;
    background-image: linear-gradient(gold 50%, blue 0);
    background-size:100% 50%;
    background-repeat:repeat;
}

在这里插入图片描述

三种颜色
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: linear-gradient(gold 33.33%, 
                                    blue 0, blue 66.66%,
                                    tomato 0);
    /* background-image: linear-gradient(gold 0%, gold 33.33%,
                                        blue 33.33%,blue 66.66%,
                                        tomato 66.66%,tomato 100%); */
    background-size:100% 50%;
    background-repeat: repeat;
}

在这里插入图片描述

竖条纹
两种颜色
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: linear-gradient(to right, gold 50%,blue 0);
    background-size:50% 100%;
    background-repeat: repeat;
}

在这里插入图片描述

三种颜色
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: linear-gradient(to right,gold 33.33%,
                                        blue 0,blue 66.66%,
                                        tomato 0);                      
    background-size:50% 100%;
    background-repeat: repeat;
}

在这里插入图片描述

斜条纹
两种颜色
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: linear-gradient(to right top,gold 25%,
                                                    blue 0, blue 50%,
                                                    gold 0, gold 75%,
                                                    blue 0);
    background-size:20px 20px;
    background-repeat: repeat;
}

在这里插入图片描述
在这里插入图片描述

repeating-linear-gradient()
<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-image: repeating-linear-gradient( to right top,
                                                gold 0, gold 10px,
                                                blue 0, blue 20px);
}

在这里插入图片描述

同色系条纹

深色作为背景色,背景色+半透明即可得浅色。

<body>
    <div class="box"></div>
</body>
div{
    width: 100px;
    height: 100px;
}
.box{
    background-color: darkorange;
    background-image: repeating-linear-gradient(45deg,
                            transparent,transparent 10px,
                          hsla(0,0%,100%,.2) 0,hsla(0,0%,100%,.2) 20px);                    
}

在这里插入图片描述

方形网格
<body>
    <div class="box"></div>
</body>
div{
    width: 110px;
    height: 110px;
    margin: 20px;
}
/* 
.box{
    background-color: white;
    background-image: linear-gradient(hsla(0,80%,50%,.5) 50%,transparent 0);
} 
*/

/*
.box{
    background-color:white;
    background-image: linear-gradient(90deg,hsla(0,80%,50%,.5) 50%,transparent 0);
}
*/

/*
.box{
    background-color: white;
    background-image: repeating-linear-gradient(hsla(0,80%,50%,.5),hsla(0,80%,50%,.5) 10px,
                                                    transparent 0,transparent 20px);
}
*/

/*
.box{
    background-color: white;
    background-image:repeating-linear-gradient(90deg, hsla(0,80%,50%,.5),hsla(0,80%,50%,.5) 10px,
                                                transparent 0,transparent 20px);
}
*/

.box{
    background-color: white;
    background-image: repeating-linear-gradient(hsla(0,80%,50%,.5),hsla(0,80%,50%,.5) 10px,
                                                    transparent 0,transparent 20px),
                      repeating-linear-gradient(90deg, hsla(0,80%,50%,.5),hsla(0,80%,50%,.5) 10px,
                                                transparent 0,transparent 20px);

}

在这里插入图片描述

div{
    width: 100px;
    height: 100px;
    margin: 20px;
}
/*
.box{
    background-color: lightskyblue;
    background-image:linear-gradient(white 2px, transparent 0);
    background-size: 50px 50px;
}
*/

/*
.box{
    background-color: lightskyblue;
    background-image: linear-gradient(90deg,white 2px,transparent 0);
    background-size: 50px 50px;
}
*/

/*
.box{
    background-color: lightskyblue;
    background-image: linear-gradient(white 1px,transparent 0);
    background-size: 10px 10px;
}
*/

/*
.box{
    background-color: lightskyblue;
    background-image: linear-gradient(90deg,white 1px,transparent 0);
    background-size: 10px 10px;
}
*/

/*
.box{
    background-color: lightskyblue;
    background-image:linear-gradient(white 2px, transparent 0),
                        linear-gradient(90deg,white 2px,transparent 0);
    background-size: 50px 50px;    
}
*/

/*
.box{
    background-color: lightskyblue;
    background-image: linear-gradient(white 1px,transparent 0),
                    linear-gradient(90deg,white 1px,transparent 0);
    background-size: 10px 10px;
}
*/
.box{
    background-color: lightskyblue;
    background-image: 
                    linear-gradient(white 2px, transparent 0),
                    linear-gradient(90deg,white 2px,transparent 0),
                    linear-gradient(white 1px,transparent 0),
                    linear-gradient(90deg,white 1px,transparent 0);
    background-size: 
                    50px 50px,
                    50px 50px,
                    10px 10px,
                    10px 10px;  
}

在这里插入图片描述

棋盘
<body>
    <div class="box"></div>
</body>
/* 
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 50%,transparent 0);
} 
*/

/*         
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0);
} 
*/

/* 
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0);
    background-size: 50px 50px;
} 
*/

/* 
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,transparent 75%,#bbb 0);
    background-size:50px 50px;
} 
*/

/* 
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0),
                        linear-gradient(45deg,transparent 75%,#bbb 0);
    background-size: 50px 50px;
} 
*/

/* 
.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0),
                        linear-gradient(45deg,transparent 75%,#bbb 0);
    background-size: 50px 50px;
    background-position: 25px 25px;
} 
*/

.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0),
                        linear-gradient(45deg,transparent 75%,#bbb 0),
                        linear-gradient(45deg,#bbb 25%,transparent 0),
                        linear-gradient(45deg,transparent 75%,#bbb 0);
    background-size: 50px 50px;
    background-position: 0 0, 
                        0 0,
                        25px 25px,
                        25px 25px;
}

.box{
    width: 100px;
    height: 100px;
    background-image: linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0),
                        linear-gradient(45deg,#bbb 25%,transparent 0,transparent 75%,#bbb 0);
    background-size: 50px 50px;
    background-position: 0 0, 25px 25px;
}

在这里插入图片描述

@mixin board($size,$color){
    background-image: linear-gradient(45deg,$color 25%,transparent 0,transparent 75%,$color 0),
                        linear-gradient(45deg,$color 25%,transparent 0,transparent 75%,$color 0);
    background-size: $size $size;
    background-position: 0 0, $size/2 $size/2;
}
.box{
    width: 100px;
    height: 100px;
    @include board(50px,#bbb);
}
信封
<body>
    <div class="box"></div>
</body>
.box{
    width: 100px;
    height: 100px;
    /* background-image: linear-gradient(-45deg,white, white 12.5%,
                                           red 0,red 25%,
                                           white 0,white 37.5%,
                                           blue 0,blue 50%,
                                           white 0,white 62.5%,
                                           red 0, red 75%,
                                           white 0,white 87.5%,
                                           blue 0,blue 100%    
                                            ); */
    background-image: repeating-linear-gradient(-45deg,white 0,white 12.5%,
                                                        red 0,red 25%,
                                                        white 0,white 37.5%,
                                                        blue 0,blue 50%);
                        
}

在这里插入图片描述
多个linear-gradient时,注意优先级,排在前面的优先级高,因此会覆盖后面的。
举例来讲,

.box{
    width: 100px;
    height: 100px;
    background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 12.5%,
                                                        red 0,red 25%,
                                                        transparent 0,transparent 37.5%,
                                                        blue 0,blue 50%),
                    linear-gradient(white,white);
}

在这里插入图片描述

.box{
    width: 16em;
    height: 8em;
    border: 1em solid transparent;
    background-image:linear-gradient(white,white),
                    repeating-linear-gradient(-45deg,transparent 0,transparent 12.5%,
                                                        red 0,red 25%,
                                                        transparent 0,transparent 37.5%,
                                                        blue 0,blue 50%);
    background-size: 4em 4em;
    /* background-size: 4em ; */
    background-clip: padding-box,border-box;                                                         
}

在这里插入图片描述
background-size:4m 4m;不等效于background-size:4em
background-size只有一个值时,该值将作为宽度值,但高度值将被设定为auto
background-size有两个值时,第一个值作为宽度值,第二个值作为高度值。
信封样式的实现和另外两个特性有关:background-clipbackground-origin
background-clip决定了背景颜色,即background-color的作用范围,其默认值是border-box,这意味着背景颜色将从元素内容区域延伸至边框。
background-origin决定了背景图像的左上角的放置位置,其默认值是padding-box,即背景图像默认从padding-box的左上角开始平铺展开。了解更多,到这里

蚂蚁行军线

在这里插入图片描述


.box{
    width: 16em;
    height: 8em;
    border: 1px solid transparent;
    background-image:linear-gradient(white,white),
                    repeating-linear-gradient(-45deg,transparent 0,transparent 12.5%,
                                                        black 0,black 25%);
    background-size: 1em 1em;
    background-clip: padding-box,border-box;          
    animation:ants 12s linear infinite;                                         
}
@keyframes ants{
    to{
        background-position:100%;
    }
}

在这里插入图片描述

动画怎么来的?看下面这个更好理解。

.box{
    width: 16em;
    height: 8em;
    border: 1em solid transparent;
    background-image: repeating-linear-gradient(-45deg,transparent 0,transparent 12.5%,
                                                        red 0,red 25%,
                                                        transparent 0,transparent 37.5%,
                                                        blue 0,blue 50%);
    background-size: 4em 4em;
    background-clip: padding-box,border-box;    
    animation:ants 12s linear infinite;                                                     
}
@keyframes ants{
    to{
        background-position:100%;
    }
}

在这里插入图片描述
当然,重点还是要理解background-position,可到这里看看。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值