2012-12-03 10 views
7

Zdjęcie powinno wyjaśnić wszystko. Po lewej stronie znajduje się Safari 6, a po prawej stronie Chrome. Nie tylko dolna połowa przezroczystego gradientu czerwonego jest całkowicie błędna (co może być przypadkiem nadgorliwej premilplikacji alfa), górna połowa jest również ciemniejsza, co wygląda jak problem z poprawnością gamma.Safari 6 Gradientowy błąd mieszania/interpolacji kolorów

Ten problem pojawia się w Safari 6 w Mountain Lion i iOS6 Mobile Safari, jednak nie w Safari 6 w Lion.

http://jsfiddle.net/ZUTYm/4

Czy ktoś znalazł rozwiązanie dla uzyskania oczekiwanych rezultatów? Potrzebuję moich gradientów, aby zaangażować alfa, ponieważ staram się zanikać tekst do i z rzeczy.

Ponieważ nie mogę skończyć zmienił aż umieścić w prawdziwym kod tutaj jest definicja gradient: background-image: -webkit-linear-gradient(top, red, rgba(255,128,128,0), white);

enter image description here

+0

Otworzyłem jsfiddle w Safari 6.0.2 na MBP działa górskiego lwa otrzymuję ten sam rezultat jak chrom na zdjęciu –

+0

Dzięki za komentarz @DanielKurz będę sprawdź dokładnie wersje oprogramowania na komputerze jutro. Jednak problem dotyczy również iOS 6.0, co jest kłopotliwe. –

+0

naprawdę myślisz, że to błąd safari? ponieważ dolna połowa powinna być gradientem od koloru tła do bieli, prawda? to, co pokazuje safari –

Odpowiedz

4

udało mi się odtworzyć problem na Mac 10.8.1 Safari 6.0 (8536,25) i iOS Safari 6.0.1. Myślę, że nakładanie -webkit-mask-image zamiast przezroczystego koloru-stop unika kwestia:

.grad-bg { 
    background-image: 
     -webkit-linear-gradient(top, #ff0000, #fff); 
    height: 100%; 
} 

.masked { 
    -webkit-mask-image: 
     -webkit-linear-gradient(top, white, transparent, white); 
} 

jsFiddle

W obrazie, najlepsze pokazy ponad białym tle, u dołu kształt wskazuje na nieprzezroczystym tle gradient te same kolory.

Top shows over a white background, bottom shape shows over an opaque gradient background of the same colors.

(wiele zmian.)

+0

Myślę, że dla spójności trzeba zrobić środkową wartość 'rgba (0,0,0,0)'. –

+0

Nie podążam; OP ma 'rgba (255,128,128,0)' i ta sama wartość jest w połączonym [jsFiddle] (http://jsfiddle.net/ZUTYm/4). Jeśli wartości średnie były równe 0, w gradiencie byłaby więcej szarości. – tiffon

+0

Ale to jest problem, Safari interpretuje 'rgba (255,128,128,0)' jako 'rgba (0,0,0,0)' i aby Chrome był spójny musisz sprawić by obie używały tych samych wartości. –