is there a way to achieve the effect in the sample below, without duplicating content, just using html and css?
So you basically have a Text that is color1 and backg
You can also use background-clip:text to color the text with a gradient and you can easily have any combination of color:
#main {
background: linear-gradient(to right, red 50%, #fff 50%);
}
#main>p {
background: linear-gradient(to left, blue 50%, #fff 50%);
display: inline-block;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color:transparent;
}
<div id="main">
<p>I am multicolor text. Multicolor text i am. This really does feel great. No duplicated content was needed for this effect. It's created by using blending effects. I am multicolor text. Multicolor text i am. This really does feel great. No duplicated
content was needed for this effect. It's created by using blending effects.</p>
</div>
Yes, by setting the mix-blend-mode CSS property to the value difference. (I've also given an example of how you can create this background image without transform.)
As an added bonus, this also makes text selection work properly. :)
#main {
background: linear-gradient(to right, #000 50%, #fff 50%);
}
#main > p {
color: #fff;
mix-blend-mode: difference;
}
<div id="main">
<p>I am multicolor text. Multicolor text i am. This really does feel great. No duplicated content was needed for this effect. It's created by using blending effects. I am multicolor text. Multicolor text i am. This really does feel great. No duplicated content was needed for this effect. It's created by using blending effects.</p>
</div>