Maison  >  Article  >  interface Web  >  Une brève analyse de la façon d'implémenter un dégradé linéaire (gradient linéaire) en CSS

Une brève analyse de la façon d'implémenter un dégradé linéaire (gradient linéaire) en CSS

青灯夜游
青灯夜游avant
2022-04-02 11:22:403627parcourir

Comment implémenter un dégradé linéaire en CSS ? L'article suivant vous présentera comment utiliser la fonction de dégradé linéaire CSS Linear-gradient() et parlera des différentes applications des dégradés linéaires. J'espère qu'il sera utile à tout le monde !

Une brève analyse de la façon d'implémenter un dégradé linéaire (gradient linéaire) en CSS

gradient-linéaire

1. Syntaxe

gradient-linéaire([[vers <direction>|<angle>],]? <arr de couleur>, <arr de couleur>[, ...]?)</arr></arr></angle></direction>linear-gradient([[to <direction>|<angle>],]? <color stop>, <color stop>[, ...]?)</color></color></angle></direction>

-webkit-linear-gradient([[<direction>|<angle>],]? <color stop>, <color stop>[, ...]?)</color></color></angle></direction>

这2种在使用方式和表现形式上都有所不同,使用direction时,前者要带to, 后者不带;使用angle时,表现不一致。【推荐学习:css视频教程

1)默认

二者默认都是从上到下

background-image:linear-gradient(#00ffff, #ff1493, #006699);
background-image:-webkit-linear-gradient(#00ffff, #ff1493, #006699)

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

2)<direction>: [left|right]|[top|bottom]</direction>的使用

二者表现方向相反

background-image:linear-gradient(to left, #00ffff, #ff1493, #006699);
background-image:-webkit-linear-gradient(left, #00ffff, #ff1493, #006699);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

background-image:linear-gradient(to left top, #00ffff, #ff1493, #006699);
background-image:-webkit-linear-gradient(left top, #00ffff, #ff1493, #006699);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

3)<angle></angle>的使用

度数方向的对应关系。-webkit-与之对应的方向则为450°-angle

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

background-image:linear-gradient(275deg, #ff1493, #000000, #006699);
background-image:-webkit-linear-gradient(175deg, #ff1493, #000000, #006699);

450°-175°=275°,所以二者表现一致,如下图:

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

4)<color stop> = <color></color></color>的使用

stop可使用百分比,也可以使用具体值,表示这种颜色在此位置达到饱和

background-image:linear-gradient(to right, #ff1493 10%, #000000 40%, #006699 60%);
background-image:-webkit-linear-gradient(to right, #ff1493 10%, #000000 40%, #006699 60%);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

从上图可以看出颜色变化过程:

0%  --> 10%: #ff1493一直处于饱和

10% --> 40%: #ff1493渐变为#000000, 在40%处,#000000达到饱和

40% --> 60%: #000000渐变为#006699, 在60%处,#006699达到饱和

60% --> 100%: #006699一直处于饱和

利用这一特性,可以绘制出条纹

  background-image:linear-gradient(to right, #ff1493 33%, #000000 33%, #000000 66%, #006699 66%);
  background-image:-webkit-linear-gradient(to right, #ff1493 33%, #000000 33%, #000000 66%, #006699 66%);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

注:stop还可以同时设置2个值, 如linear-gradient(to right, #ff1493 0% 33%, #000000 33% 66%, #006699 66% 100%);-webkit-linear-gradient(to right, #ff1493 33%, #000000 33% 66%, #006699 66% 100%);,效果与上图一致。

若后者的值小于前者,以前者为准,如下20px小于60px,实际按60px显示,效果如下图:

background-image:linear-gradient(right, #ff1493 60px, #000000 20px);
background-image:-webkit-linear-gradient(right, #ff1493 60px, #000000 20px);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

扩展1:渐变中心

默认是2种颜色的中心,但是我们可以设置其渐变中心

/* 3种颜色平分,渐变中心为1/3和2/3处 */
background-image:linear-gradient(to right, #ff1493, #000000, #006699); 
/* 渐变中心在10%和20%处 */
background-image:linear-gradient(to right, #ff1493, 10%, #000000, 20%, #006699);

注:-webkit-linear-gradient-webkit-linear-gradient([[<direction>|<angle>],]? <arr de couleur>, <color stop>[, ...]?)</color></arr></angle></direction>

Ces deux sont différents dans leur utilisation et leur expression. Lors de l'utilisation de direction , le premier nécessite to, alors que ce dernier ne le fait pas ; lors de l'utilisation de <code>angle, les performances sont incohérentes. [Apprentissage recommandé : Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSSTutoriel vidéo CSS

]

1) Par défaut

Les deux valeurs par défaut sont de haut en bas

background-image:repeating-linear-gradient(0deg, #ff1493, #000000 10px, #006699 20px);
background-image:-webkit-repeating-linear-gradient(0deg, #ff1493, #000000 10px, #006699 20px)
Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSSUne brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

2)<direction> : [gauche|droite]|[haut|bas] Le utilisation de </direction>Les deux directions de performance sont opposées

background-image:
    linear-gradient(45deg, rgba(255, 0, 76, 0.7), rgba(0, 0, 255, 0) 80%),
    linear-gradient(135deg, rgba(106, 0, 128, 1), rgba(0, 128, 0, 0) 80%),
    linear-gradient(225deg, rgba(0, 255, 255, 1), rgba(0, 255, 255, 0) 80%),
    linear-gradient(315deg, rgba(255, 192, 203, 0.7), rgba(255, 192, 203, 0) 80%);

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

background-image:
    repeating-linear-gradient(0deg, rgba(0, 255, 255, 0.3) 0px 5px, transparent 5px 10px),
    repeating-linear-gradient(90deg, rgba(0, 255, 255, 0.3) 0px 5px, transparent 5px 10px);
    
background-image:
    repeating-linear-gradient(45deg, rgba(0, 255, 255, 0.3) 0px 5px, transparent 5px 10px),
    repeating-linear-gradient(135deg, rgba(0, 255, 255, 0.3) 0px 5px, transparent 5px 10px);
Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

3) L'utilisation de <angle></angle>

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

La correspondance entre le degré et la direction relation. <code>-webkit-La direction correspondante est un angle de 450°

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

<div id="wrap"></div>
<style>
 #wrap {
    width: 180px;
    height: 40px;
    border: 5px solid transparent;
    border-image: linear-gradient(45deg, aqua, pink, purple) 1;
}

</style>

450°-175°=275°, donc les deux se comportent de la même manière, comme indiqué ci-dessous :

Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

4) L'utilisation de <color stop> = <color></color></color>🎜🎜🎜stop peut utiliser des pourcentages ou des valeurs spécifiques, indiquant que cela la couleur est saturée à cette position🎜
<div id="wrap"></div>
<style>
 #wrap {
    width: 180px;
    height: 40px;
    border: 5px solid transparent;
    border-image: linear-gradient(45deg, aqua, pink, purple) 1;
    clip-path: inset(0 round 5px);
}

</style>
🎜Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS🎜🎜Vous pouvez voir le processus de changement de couleur sur l'image ci-dessus : 🎜🎜0% --> 10% : #ff1493a été dans Saturation🎜🎜10% --> 40% : #ff1493 passe à #000000, à 40% , #000000 atteint la saturation🎜🎜40% --> 60% : #000000 dégradé à #006699 , à 60 %, #006699 atteint la saturation🎜🎜60 % --> : #006699Toujours présent saturé🎜🎜En utilisant cette fonctionnalité, vous pouvez dessiner des rayures🎜
<div id="wrap">
    <div id="content"></div>
</div>
<style>
#wrap {
    width: 180px;
    height: 40px;
    border-radius: 20px;
    background: #FFF;
    position: relative;
}

#wrap::before {
    content: &#39;&#39;;
    position: absolute;
    left: -5px;
    right: -5px;
    top: -5px;
    bottom: -5px;
    background-image: linear-gradient(45deg, aqua, pink, purple);
    border-radius: 25px;
    z-index: -1
}

/*或者*/

#wrap {
    width: 180px;
    height: 40px;
    border-radius: 20px;
    background: #FFF;
    position: relative;
    border: 5px solid transparent;
    background-origin: border-box;
    background-image: linear-gradient(#FFF, #FFF), linear-gradient(45deg, aqua, pink, purple);
    background-clip: padding-box, border-box;
}

/*或者*/

#wrap {
    width: 180px;
    height: 50px;
    border: 5px solid transparent;
    border-radius: 25px;
    background-image: linear-gradient(45deg, aqua, pink, purple);
    background-origin: border-box;
}

#content {
    width: 100%;
    height: 100%;
    border-radius: 20px;
    background: #FFF;
}

</style>
🎜Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS🎜🎜Remarque : stop peut également définir 2 valeurs en même temps, telles que linéaire- dégradé (à droite, #ff1493 0% 33%, #000000 33% 66%, #006699 66% 100%);-webkit-linear-gradient(à droite, #ff1493 33%, #000000 33% 66%, # 006699 66% 100%);, l'effet est conforme à l'image ci-dessus. 🎜🎜🎜Si cette dernière valeur est inférieure à la première, la première prévaudra. Si 20px est inférieur à 60px, la valeur réelle sera affichée sous la forme 60px. . L'effet est le suivant :🎜
<div id="wrap"> Darker CMJ</div>
<style>
#wrap {
    font-size: 40px;
    line-height: 40px;
    font-weight: bold;
    background-clip: text;
    -webkit-background-clip: text;
    // color: transparent;
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(45deg, aqua, pink, purple);
}
</style>
🎜Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS🎜 🎜🎜Extension 1 : Centre du dégradé 🎜🎜🎜La valeur par défaut est le centre de 2 couleurs, mais on peut définir son centre du dégradé 🎜rrreee🎜Remarque : -webkit -linear-gradient ne prend pas en charge cette utilisation 🎜🎜🎜🎜🎜🎜🎜Extension 2 : répéter-linear-gradient🎜🎜🎜Nous pouvons utiliser l'attribut pour dessiner des blocs de couleur répétés🎜rrreee🎜🎜🎜🎜🎜🎜2 .Styles courants 🎜🎜🎜🎜🎜 (1) Ciel étoilé multicolore🎜🎜rrreee🎜Définissez plusieurs valeurs en même temps pour rendre toute la couleur d'arrière-plan plus magnifique🎜🎜🎜🎜🎜🎜 (2) Motif à carreaux🎜 🎜rrreee🎜Utilisez la couleur et la couleur transparente pour rendre alternativement🎜🎜🎜🎜

(3)边框渐变

<div id="wrap"></div>
<style>
 #wrap {
    width: 180px;
    height: 40px;
    border: 5px solid transparent;
    border-image: linear-gradient(45deg, aqua, pink, purple) 1;
}

</style>

内部背景透明,但是不支持设置border-radius

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

<div id="wrap"></div>
<style>
 #wrap {
    width: 180px;
    height: 40px;
    border: 5px solid transparent;
    border-image: linear-gradient(45deg, aqua, pink, purple) 1;
    clip-path: inset(0 round 5px);
}

</style>

注:可以使用clip-path裁剪出圆角, 但是这种方式不适用于角度较大的圆角

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

<div id="wrap">
    <div id="content"></div>
</div>
<style>
#wrap {
    width: 180px;
    height: 40px;
    border-radius: 20px;
    background: #FFF;
    position: relative;
}

#wrap::before {
    content: &#39;&#39;;
    position: absolute;
    left: -5px;
    right: -5px;
    top: -5px;
    bottom: -5px;
    background-image: linear-gradient(45deg, aqua, pink, purple);
    border-radius: 25px;
    z-index: -1
}

/*或者*/

#wrap {
    width: 180px;
    height: 40px;
    border-radius: 20px;
    background: #FFF;
    position: relative;
    border: 5px solid transparent;
    background-origin: border-box;
    background-image: linear-gradient(#FFF, #FFF), linear-gradient(45deg, aqua, pink, purple);
    background-clip: padding-box, border-box;
}

/*或者*/

#wrap {
    width: 180px;
    height: 50px;
    border: 5px solid transparent;
    border-radius: 25px;
    background-image: linear-gradient(45deg, aqua, pink, purple);
    background-origin: border-box;
}

#content {
    width: 100%;
    height: 100%;
    border-radius: 20px;
    background: #FFF;
}

</style>

这几种方式都能做到圆角渐变边框,但是无法做到内部背景透明

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

(4)文字渐变

<div id="wrap"> Darker CMJ</div>
<style>
#wrap {
    font-size: 40px;
    line-height: 40px;
    font-weight: bold;
    background-clip: text;
    -webkit-background-clip: text;
    // color: transparent;
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(45deg, aqua, pink, purple);
}
</style>

background-clip规定背景的绘制区域,我们设置其值为text,就是在文字区域绘制,然后将文字color或者-webkit-text-fill-color设置为透明色,渐变区域就能显示出来了

1Une brève analyse de la façon dimplémenter un dégradé linéaire (gradient linéaire) en CSS

好了,over,第一次写文章,希望能坚持下去=.=

(学习视频分享:web前端

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer