Как я могу инвертировать цвет с помощью CSS?
HTML
<div>
<p>inverted color</p>
</div>
CSS
div {
background-color: #f00;
}
p {
color: /* how to use inverted color here in relation with div background ? */
}
Есть ли способ инвертировать цвет p
с помощью CSS?
Существует color: transparent;
, почему нет color: invert;
даже в CSS3?
Ответы
Ответ 1
Добавьте тот же цвет фона к абзацу, а затем инвертируйте с помощью CSS:
div {
background-color: #f00;
}
p {
color: #f00;
-webkit-filter: invert(100%);
filter: invert(100%);
}
<div>
<p>inverted color</p>
</div>
Ответ 2
Я думаю, что единственный способ справиться с этим - использовать JavaScript
Попробуйте Инвертировать цвет текста определенного элемента
Если вы сделаете это с помощью css3, оно будет совместимо только с новейшими версиями браузера.
Ответ 3
Вот другой подход с использованием mix-blend-mode: difference
, который фактически инвертирует любой фон, а не только один цвет:
div {
background-image: linear-gradient(to right, red, yellow, green, cyan, blue, violet);
}
p {
color: white;
mix-blend-mode: difference;
}
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscit elit, sed do</p>
</div>