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?
outline-color: invert
изобретенный Леей Веру для IE. К сожалению, Opera (Presto) не обрезает область, заполненную контуромoverflow
, поэтому там работать не будет. Надеюсь, что эта демонстрация еще может быть полезна для дальнейших экспериментов.Ответы:
Добавьте тот же цвет фона к абзацу, а затем инвертируйте с помощью CSS:
div { background-color: #f00; } p { color: #f00; -webkit-filter: invert(100%); filter: invert(100%); }
<div> <p>inverted color</p> </div>
источник
color
, но неbackground
. Так уж получилось, чтоcolor
установлен такой же, какbackground-color
. См. Ниже решение, которое переворачивает фон.Вот другой подход
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>
источник
mix-blend-mode: difference
работает там, гдеfilter: invert(100%)
не работает при использованииposition: fixed
(скажем, модальных) stackoverflow.com/a/37953806/366332Я думаю, что единственный способ справиться с этим - использовать JavaScript.
Попробуйте инвертировать цвет текста определенного элемента
Если вы сделаете это с помощью css3, он совместим только с новейшими версиями браузеров.
источник