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 ? */
}
Czy jest sposób na odwrócenie p
koloru za pomocą CSS?
Jest color: transparent;
to dlaczego nie color: invert;
nawet w CSS3?
outline-color: invert
wynalezioną przez Leę Verou dla IE. Niestety Opera (Presto) nie przycięła obszaru wypełnionego konturem przezoverflow
, więc tam nie będzie działać. Mam nadzieję, że to demo będzie nadal przydatne w dalszych eksperymentach.Odpowiedzi:
Dodaj ten sam kolor tła do akapitu, a następnie odwróć za pomocą CSS:
div { background-color: #f00; } p { color: #f00; -webkit-filter: invert(100%); filter: invert(100%); }
<div> <p>inverted color</p> </div>
źródło
color
, ale niebackground
. Tak się składa, żecolor
jest ustawione na to samo cobackground-color
. Zobacz poniżej rozwiązanie, które odwraca tło.Oto inne podejście
mix-blend-mode: difference
, które faktycznie odwróci niezależnie od tła, a nie tylko pojedynczy kolor: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>
źródło
mix-blend-mode: difference
działa tam, gdziefilter: invert(100%)
zawodzi, gdy jest używany zposition: fixed
(powiedzmy modalami) stackoverflow.com/a/37953806/366332Myślę, że jedynym sposobem na rozwiązanie tego problemu jest użycie JavaScript
Spróbuj tego Odwróć kolor tekstu określonego elementu
Jeśli zrobisz to z css3, będzie to kompatybilne tylko z najnowszymi wersjami przeglądarek.
źródło