Ich habe versucht, CSS mit linearem Farbverlauf zu verwenden, um die Verwendung eines Bilds für einen Farbverlauf zu vermeiden, aber leider wird es in Chrome mit sichtbaren Streifen schlecht dargestellt.
Ich habe ein Codepen-Beispiel erstellt, um das Problem zu veranschaulichen.
http://codepen.io/chrism/pen/1
Es ist seltsam, weil es perfekt in Safari, einem anderen Webkit-basierten Browser, gerendert wird.
Der CSS-Code stammt aus Kompassbildern. Denken Sie also nicht, dass dies ein Problem mit meinem CSS ist
Ich habe im Chrome Issue Tracker dieses Ticket gefunden, das sich meiner Meinung nach auf dieses Problem bezieht.
http://code.google.com/p/chromium/issues/detail?id=41756
Ich habe mich gefragt, ob jemand dafür Problemumgehungen hat, bei denen keine Bilder verwendet werden.
Vielen Dank!
Antworten:
Der Unterschied, den Sie sehen, ist Dithering. Safari weist Farbverläufe auf, Chrome nicht. Ich glaube nicht, dass es eine Möglichkeit gibt, Dithering für beide zu aktivieren oder zu deaktivieren.
http://en.wikipedia.org/wiki/Dither
Leider bedeutet dies, dass Sie möglicherweise Bilder verwenden müssen. Wenn Sie noch ein sich wiederholendes Bild für einen Gradienten verwenden entscheiden, stellen Sie sicher , dass Sie genügend Breite oder Höhe für die Dithering zur Arbeit verlassen. Normalerweise benötigt Dithering etwa 10 bis 20 Pixel, um nicht wiederholt auszusehen.
quelle
Ich stelle fest, wenn Sie das Element, das Ihren Farbverlauf enthält, mit der GPU
transform:translateZ(0)
rendern, wird es glatter, nicht perfekt, aber glatter.quelle