Подтвердить что ты не робот

Как я могу инвертировать цвет с помощью 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?

4b9b3361

Ответ 1

Добавьте тот же цвет фона к абзацу, а затем инвертируйте с помощью CSS:

div {
    background-color: #f00;
}

p { 
    color: #f00;
    -webkit-filter: invert(100%);
    filter: invert(100%);
}
<div>
    <p>inverted color</p>
</div>

Ответ 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>