2014-10-30 12 views
11

Se sto usando un gradiente lineare con più soste come questo:Blurry gradiente lineare si ferma in cromo

div 
{ 
    border: 1px solid black; 
    width: 100px; 
    height: 2000px; 
    display: inline-block; 
    background-image: linear-gradient(to bottom, #383937 0, #001500 35px, 
    #ffffff 35px, #b0b0b0 150px, #ffffff 150px, #ffffff 100%); 
} 

Firefox problemi.

Chrome Le transizioni tra i colori del gradiente sono sfocate. Sto riutilizzando una posizione per definire un nuovo colore, quindi in posizione 35, il colore va da # 001500 a #ffffff all'istante (o almeno dovrebbe). La sfocatura tra gli arresti del gradiente aumenta se il div è più alto.

IE C'è un po 'di sfocatura come in cromo, ma meno estremo. Come in Chrome, la sfocatura aumenta se il div è aumentato.

http://jsfiddle.net/cyq7grdr/5/

Il gradiente in firefox:

gradient in firefox

Il gradiente in cromo:

gradient in chrome

Il gradiente in cromo quando il div è meno alta (1000px invece di 2000 px):

enter image description here

modificare

Sembra che questo è stato risolto in Chrome, ma ha introdotto in Firefox. Se qualcuno può confermarlo, sarei felice.

+2

Correlato: https://code.google.com/p/chromium/issues/detail?id=140208 – Mooseman

+0

C'è qualche soluzione? Sembra che questo non sarà risolto in qualsiasi momento presto ... –

+0

Odio assolutamente dire questo ... ma usare un'immagine. Deve essere solo 1px con 'repeat-x'. – Mooseman

risposta

5

Non una soluzione al problema, solo una soluzione ... è possibile utilizzare più sfumature come sfondi multipli di dimensioni sufficientemente ridotte per non attivare il problema (sembra che lo sia < ~ 300px). Combinate con background-size e background-position e si ottiene qualcosa che è brutto, ma funziona:

background-image: 
    linear-gradient(to bottom, #383937 0, #001500 35px, #ffffff 35px, #b0b0b0 150px), 
    linear-gradient(to bottom, #963 0, #abc 150px); 
background-size: 
    100px 150px, 
    100px 150px; 
background-position: 
    0 0, 
    0 150px; 
background-repeat: no-repeat; 

Vedi JSFiddle per demo.

Problemi correlati