2017-05-12 4 views
0

CSS-Hintergrund linearer Farbverlauf Bug mit Chrome?

html { 
 
    background:#ffffff; 
 
} 
 
body { 
 
    height:250px; 
 
    background: linear-gradient(
 
    to bottom, 
 
    #ffffff 0px, 
 
    #ffffff 100px, 
 
    #0065A2 100px, 
 
    #0065A2 145px, 
 
    #074A8B 145px, 
 
    #074A8B 163px, 
 
    #0065A2 163px, 
 
    #0065A2 203px, 
 
    transparent 203px 
 
); 
 
}

Ich versuche, einen Hintergrund linearen Gradienten zu verwenden und mit großer Überraschung funktioniert es gut auf Firefox und IE, aber nicht auf Google Chrome.

Der Code ist hier zum Beispiel: https://jsfiddle.net/be1rgpez/1/

background: linear-gradient(
    to bottom, 
    #ffffff 0px, 
    #ffffff 100px, 
    #0065A2 100px, 
    #0065A2 145px, 
    #074A8B 145px, 
    #074A8B 163px, 
    #0065A2 163px, 
    #0065A2 203px, 
    transparent 203px 
); 

ich mit mehreren Farbstopps einen linearen Gradienten benötigen, aber unter Verwendung von Google Chrome es macht einen seltsamen Schatten zwischen den Farben (siehe Bild links Kasten). Der Effekt, den ich brauche, ist "gestreift" ohne Schatten.

Im Anhang zeige ich, was ich mit Chrome sehe. Die linke Box ist was ich brauche aber ohne die Schatten (wie in der rechten Box). Die gleiche jsfiddle rendert korrekt in Firefox und IE.

enter image description here

UPDATE: Dies ist eine vergrößerte Ansicht. Wie Sie sehen können, hat die linke Box einen kleinen Schatten zwischen der weißen und der blauen Farbe (und auch zwischen anderen Farben).

enter image description here

+1

Ich weiß nicht viel über Steigungen, aber es funktioniert, wenn Sie% anstelle von px ist. – SjaakvBrabant

+0

@Pete im Bild angehängt die linke Box zeigen einen kleinen Schatten zwischen den Farben. Ich brauche den Effekt auf der rechten Box, ohne Schatten zwischen den Farben (weiß und blau). Aber ich brauche es mit mehr Farben (weiß, blau, dunkelblau ...). Google Chrome scheint diesen kleinen Schatten zu rendern, wenn mehr als 2 Farben (oder 2 Streifen) verwendet werden. – webpaul

Antwort

0

Sie haben die gleichen Ausgangspunkte zweimal für verschiedene Farben definiert. Der Code unten, ohne dass die Duplikate sieht gut aus:

.left { 
    background: linear-gradient(
     to bottom, 
     #ffffff 0px, 
     #0065A2 100px, 
     #074A8B 145px, 
     #0065A2 163px, 
     transparent 203px 
    ); 
} 
+0

Dieser Code generiert Gradienten. Ich brauche Streifen mit Farbänderungen. Kein Farbverlauf erforderlich. Deshalb verwende ich dieselben Pixel "Stopps": So kann ich die Farbe ohne den glatten/Verlaufseffekt changieren. – webpaul

+1

https://graphicdesign.stackexchange.com/questions/8426/gradient-banding-in-chrome – Gerard

1

diesen Code versuchen:

.left { 
    background: linear-gradient(to bottom, #ffffff 0px, #ffffff 100px, #0065A2 100px); 
    background: -webkit-linear-gradient(to bottom, #ffffff 0px, #ffffff 100px, #0065A2 100px); 
} 

.right { 
    background: linear-gradient(to bottom, #ffffff 0px, #ffffff 100px, #0065A2 100px); 
    background: -webkit-linear-gradient(to bottom, #ffffff 0px, #ffffff 100px, #0065A2 100px); 
} 
+0

Dieser Code hat nur 1 Farbwechsel (von #ffffff zu # 0065A2) und es funktioniert auf Chrom. Aber ich brauche mehr Farbänderungen: #ffffff, # 0065A2, # 074A8B, dann wieder # 0065A2 und transparent am Ende. Mehrere Farben scheinen ein Buggy-Verhalten auf Chrom zu haben (wie ich in der Frage geschrieben habe). – webpaul

Verwandte Themen