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 ? */
}
Gibt es eine Möglichkeit, die p
Farbe mit CSS zu invertieren ?
Es ist , color: transparent;
warum nicht color: invert;
auch in CSS3?
outline-color: invert
den Lea Verou für IE erfunden hat . Leider hat Opera (Presto) den mit Umrissen gefüllten Bereich nicht abgeschnittenoverflow
, sodass es dort nicht funktioniert. Ich hoffe, dass diese Demo für die weiteren Experimente noch nützlich sein kann.Antworten:
Fügen Sie dem Absatz dieselbe Hintergrundfarbe hinzu und invertieren Sie ihn dann mit CSS:
div { background-color: #f00; } p { color: #f00; -webkit-filter: invert(100%); filter: invert(100%); }
<div> <p>inverted color</p> </div>
quelle
color
, aber nicht dasbackground
. Es passiert einfach so, dasscolor
es auf das gleiche eingestellt ist wiebackground-color
. Siehe unten für eine Lösung, die den Hintergrund invertiert.Hier ist ein anderer Ansatz
mix-blend-mode: difference
, der tatsächlich den Hintergrund invertiert, nicht nur eine einzelne Farbe: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>
quelle
mix-blend-mode: difference
funktioniertfilter: invert(100%)
, wenn bei Verwendung mitposition: fixed
(z. B. Modal-) stackoverflow.com/a/37953806/366332Ich denke, die einzige Möglichkeit, damit umzugehen, ist die Verwendung von JavaScript
Versuchen Sie, die Textfarbe eines bestimmten Elements umzukehren
Wenn Sie dies mit CSS3 tun, ist es nur mit den neuesten Browserversionen kompatibel.
quelle