Existe-t-il un générateur ou un moyen simple de générer un texte tel que this mais sans avoir à définir chaque lettre
Donc, quelque chose comme ça:
.Rainbow {
background-image: -webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
background-image: gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
color:transparent;
-webkit-background-clip: text;
background-clip: text;
}
<span class="Rainbow">Rainbow text</span>
Mais pas avec les couleurs Rainbow, mais avec d’autres couleurs (par exemple, du blanc au gris/dégradé de bleu clair, etc.). Je ne trouve pas de solution facile à cela. Des solutions?
Je ne sais pas exactement comment ça marche stop. Mais j'ai un exemple texte dégradé. Peut-être que cela va vous aider!
_Vous pouvez également ajouter plus de couleurs au dégradé si vous le souhaitez ou simplement sélectionner d'autres couleurs à partir du générateur de couleurs
.Rainbow2 {
background-image: -webkit-linear-gradient(left, #E0F8F7, #585858, #fff); /* For Chrome and Safari */
background-image: -moz-linear-gradient(left, #E0F8F7, #585858, #fff); /* For old Fx (3.6 to 15) */
background-image: -ms-linear-gradient(left, #E0F8F7, #585858, #fff); /* For pre-releases of IE 10*/
background-image: -o-linear-gradient(left, #E0F8F7, #585858, #fff); /* For old Opera (11.1 to 12.0) */
background-image: linear-gradient(to right, #E0F8F7, #585858, #fff); /* Standard syntax; must be last */
color:transparent;
-webkit-background-clip: text;
background-clip: text;
}
.Rainbow {
background-image: -webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
background-image: gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );
color:transparent;
-webkit-background-clip: text;
background-clip: text;
}
<span class="Rainbow">Rainbow text</span>
<br />
<span class="Rainbow2">No Rainbow text</span>
La façon dont cet effet fonctionne est très simple. L'élément est donné un fond qui est le dégradé. Cela varie d'une couleur à l'autre en fonction des couleurs et des pourcentages d'arrêt de la couleur indiqués.
Par exemple, dans l'exemple de texte Rainbow (notez que j'ai converti le dégradé en syntaxe standard):
#f22
à 0%
(c'est-à-dire le bord gauche de l'élément). La première couleur est toujours supposée commencer à 0%
même si le pourcentage n’est pas mentionné explicitement.0%
et 14.25%
, la couleur change progressivement de #f22
à #f2f
. Le pourcentage est défini sur 14.25
car il y a sept changements de couleur et nous recherchons des divisions égales.14.25%
(de la taille du conteneur), la couleur sera exactement #f2f
selon le dégradé spécifié.14.25%
.Nous obtenons donc un dégradé comme dans l'extrait ci-dessous. Maintenant, cela seul signifierait que l'arrière-plan s'applique à l'élément entier et pas seulement au texte.
.Rainbow {
background-image: linear-gradient(to right, #f22, #f2f 14.25%, #22f 28.5%, #2ff 42.75%, #2f2 57%, #2f2 71.25%, #ff2 85.5%, #f22);
color: transparent;
}
<span class="Rainbow">Rainbow text</span>
Étant donné que le dégradé doit être appliqué uniquement au texte et non à l'élément dans son ensemble, nous devons demander au navigateur de couper le fond des zones situées en dehors du texte. Ceci est fait en paramétrant background-clip: text
.
( Notez que le background-clip: text
est une propriété expérimentale et n'est pas largement pris en charge. )
Maintenant, si vous voulez que le texte ait un simple dégradé de 3 couleurs (c'est-à-dire du rouge - orange - brun), il suffit de changer la spécification du dégradé linéaire comme suit:
to right
. S'il doit être rouge à droite et brun à gauche, indiquez to left
.red
comme première couleur (le pourcentage est supposé être de 0%).50%
la couleur devrait être orange
et la couleur finale serait brown
. La position de la couleur finale est toujours supposée être à 100%.Ainsi, la spécification du gradient devrait se lire comme suit:
background-image: linear-gradient(to right, red, orange 50%, brown).
Si nous formons les gradients à l'aide de la méthode susmentionnée et les appliquons à l'élément, nous pouvons obtenir l'effet requis.
.red-orange-brown {
background-image: linear-gradient(to right, red, orange 50%, brown);
color: transparent;
-webkit-background-clip: text;
background-clip: text;
}
.green-yellowgreen-yellow-gold {
background-image: linear-gradient(to right, green, yellowgreen 33%, yellow 66%, gold);
color: transparent;
-webkit-background-clip: text;
background-clip: text;
}
<span class="red-orange-brown">Red to Orange to Brown</span>
<br>
<span class="green-yellowgreen-yellow-gold">Green to Yellow-green to Yellow to Gold</span>
Vous pouvez obtenir cet effet en combinant CSS linear-gradient et mix-blend-mode .
HTML
<p>
Enter your message here...
To be or not to be,
that is the question...
maybe, I think,
I'm not sure
wait, you're still reading this?
Type a good message already!
</p>
CSS
p {
width: 300px;
position: relative;
}
p::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(45deg, red, orange, yellow, green, blue, purple);
mix-blend-mode: screen;
}
Cela ajoute un dégradé linéaire au pseudo-élément ::after
du paragraphe et fait en sorte qu'il recouvre tout l'élément de paragraphe. Mais avec mix-blend-mode: screen
, le dégradé ne sera visible que sur les parties contenant du texte.
Voici un jsfiddle pour montrer cela au travail. Modifiez simplement les valeurs linear-gradient
pour obtenir ce que vous voulez.
Exemple de dégradé de texte CSS
background-image: -moz-linear-gradient(top,#E605C1 0%,#3B113B 100%);
background-image: -webkit-linear-gradient(top,#E605C1 0%,#3B113B 100%);
background-image: -o-linear-gradient(top,#E605C1 0%,#3B113B 100%);
background-image: -ms-linear-gradient(top,#E605C1 0%,#3B113B 100%);
background-image: linear-gradient(top,#E605C1 0%,#3B113B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
position:relative;
display:inline-block; /*required*/
Générateur en lignetextgradient.com
body{ background:#3F5261; text-align:center; font-family:Arial; }
h1 {
font-size:3em;
background: -webkit-linear-gradient(top, gold, white);
background: linear-gradient(top, gold, white);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
position:relative;
margin:0;
z-index:1;
}
div{ display:inline-block; position:relative; }
div::before{
content:attr(data-title);
font-size:3em;
font-weight:bold;
position:absolute;
top:0; left:0;
z-index:-1;
color:black;
z-index:1;
filter:blur(5px);
}
<div data-title='SOME TITLE'>
<h1>SOME TITLE</h1>
</div>