2013-05-22 4 views
6

Ich habe ein sich wiederholendes linearen Gradienten wie folgt:Chrome linearen Gradienten Bug

.placeholder { 
background: repeating-linear-gradient(to top right, #7722AA 0px, #7722AA 6%, #CC44EE 6%, #CC44EE 13%) transparent; 
border: 1px solid #000000; 
float: left; 
height: 110px; 
width: 120px; 
} 

jedoch in Chrome, Firefox auf Mac und Oper ist das Aussehen verzerrt: enter image description here

Es funktioniert gut, wenn in einem Quadrat, Aber wenn es zu einem Rechteck wird, wird es zackig - dasselbe passiert nicht in allen anderen Browsern.

Was verursacht das?

jsfiddle

+0

So wird es gerendert ... – Xarcell

+0

@Xarcell ... so? Es bedeutet nicht, dass es richtig gerendert wird ... – rickyduck

+0

was ich meine ist, das ist das beste Chrome kann an diesem Punkt tun. Du wirst einfach keine gezackten Linien in diesem Winkel bekommen. Passen Sie den Winkel an oder tun Sie, was Blazonger sagt, fügen Sie eine kleine Unschärfe hinzu ... – Xarcell

Antwort

2

Vielleicht möchten Sie:

.placeholder { 
background: repeating-linear-gradient(45deg, #7722AA 0px, #7722AA 6%, #CC44EE 6%, #CC44EE 13%) transparent; 
border: 1px solid #000000; 
float: left; 
height: 110px; 
width: 120px; 
} 

?

+0

Perfekte Lösung, danke! – rickyduck

+0

Da Ihre Box rechteckig und nicht quadratisch ist, beträgt der Winkel von oben rechts zur unteren Kante nicht 45 Grad. Abhängig von der Zeichnungsbibliothek, die vom Browser verwendet wird, sind Winkel, die nicht in Vielfachen von 45 Grad liegen, wahrscheinlich unscharf. –

1

Ein Ansatz ist der Gradient ein bisschen mehr, um sich auszubreiten. Das Hinzufügen eines Übergangs von 2% zu jeder Seite des Streifens ergibt eine leichte Unschärfe, die die Schattierungen verdeckt, ohne die Kante zu beseitigen.

repeating-linear-gradient(to top right, #CC44EE 0px, #7722AA 2%, #7722AA 7%, #CC44EE 9%, #CC44EE 14%) transparent 

http://jsfiddle.net/mblase75/FrT6Y/

die Unschärfe entlang der Streifenkante zu erhöhen, erhöht das 2% bis 3% oder mehr und dann das 7% bis 6% oder mehr verringern, die Streifen mit der gleichen Größe zu halten:

repeating-linear-gradient(to top right, #CC44EE 0px, #7722AA 3%, #7722AA 6%, #CC44EE 9%, #CC44EE 14%) transparent 

http://jsfiddle.net/mblase75/FrT6Y/5/

+0

Leider ist meine gewünschte Ausgabe, wie der Originalcode in FF, IE und Presto gerendert wird, was korrekt ist – rickyduck

+1

Könnte ein [Fehlerbericht] sein (https: //groups.google.com/a/chromium.org/forum/?fromgroups#!forum/chromium-bugs), dann. Obwohl Firefox für Mac mir die gleichen Jaggies gibt. – Blazemonger

+0

Interessant in Bezug auf das gleiche Problem auf FF auf Mac - danke. – rickyduck