CSS kullanarak rengi nasıl tersine çevirebilirim?


87

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 ? */
}

pRenkleri CSS ile ters çevirmenin bir yolu var mı ?

Orada color: transparent;neden olmasın color: invert;hatta CSS3 içinde?


2
-webkit filtresi: ters çevir (% 100);
daniel__


3
Gelen bu Turp CSS WebKit için filtreyi, Firefox için SVG filtre ve birlikte parlak bir hile: Ben 3 yaklaşımları birleştirmek için çalıştı outline-color: invert Lea Verou tarafından icat IE için. Ne yazık ki Opera (Presto), anahat ile doldurulan alanı kırpmadı overflow, bu yüzden orada çalışmayacak. Umarım bu demo, sonraki deneyler için hala yararlı olabilir.
Ilya Streltsyn

Yanıtlar:


130

Arka planın aynı rengini paragrafa ekleyin ve ardından CSS ile ters çevirin:

div {
    background-color: #f00;
}

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


Bu, ters çevirir color, ancak background. colorAynen öyle olur ki aynı şekilde ayarlanır background-color. Arka planı tersine çeviren bir çözüm için aşağıya bakın .
ᆼ ᆺ ᆼ

10

İşte mix-blend-mode: differencearka plan her ne ise onu tersine çevirecek, sadece tek bir rengi değil, farklı bir yaklaşım :

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>


1
+1 , (örneğin mix-blend-mode: differencefilter: invert(100%)position: fixed
modlar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.