Цвет текста градиента
Есть ли генератор или простой способ генерировать текст типа this, но без необходимости определять каждую букву
Так что-то вроде этого:
.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>
Ответы
Ответ 1
Я точно не знаю, как работает стоп-материал.
Но у меня есть пример градиентного текста. Возможно, это поможет вам!
Вы также можете добавить больше цветов в градиент, если хотите, или просто выбрать другие цвета из цветового генератора
.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>
Ответ 2
Как работает этот эффект, очень просто. Элементу задан фон, который является градиентом. Он идет от одного цвета к другому в зависимости от цветов и цветовых оттенков, заданных для него.
Например, в примере радужного текста (обратите внимание, что я преобразовал градиент в стандартный синтаксис):
- Градиент начинается с цвета
#f22
в 0%
(это левый край элемента). Предполагается, что первый цвет начинается с 0%
, хотя процент явно не упоминается.
- От
0%
до 14.25%
цвет меняется от #f22
до #f2f
постепенно. Percenatge устанавливается на 14.25
, потому что есть семь изменений цвета, и мы ищем равные расщепления.
- В
14.25%
(размера контейнера) цвет будет точно соответствовать #f2f
в соответствии с указанным градиентом.
- Аналогично, цвета меняются друг от друга в зависимости от полос, заданных процентами остановки цвета. Каждая полоса должна быть шагом
14.25%
.
Итак, мы получаем градиент, как в приведенном ниже фрагменте. Теперь это одно будет означать, что фон применяется ко всему элементу, а не только к тексту.
.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>
Ответ 3
Вы можете достичь этого эффекта, используя комбинацию CSS linear-gradient и 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;
}
Что это значит, добавьте линейный градиент в псевдоэлемент абзаца ::after
и сделайте его охватывающим весь элемент абзаца. Но с mix-blend-mode: screen
, градиент будет отображаться только на тех частях, где есть текст.
Здесь jsfiddle, чтобы показать это на работе. Просто измените значения linear-gradient
, чтобы достичь желаемого.
Ответ 4
Пример градиента текста 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*/
Онлайн-генератор
textgradient.com
Ответ 5
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>