2011-01-19 4 views
27

C'è un modo per creare un cross-browser, puro gradiente di colore del testo CSS3?Gradiente di colore del testo CSS3 puro - È possibile?

Quindi, no png's. Nessun "webkit" solo.

MODIFICA: Per essere più precisi: è solo CSS3, ed è per testo, non gradienti casella.

EDIT: Ho trovatothis solution, ma è solo per WebKit.

+0

attraverso il quale browser? quelli che supportano CSS3? – zzzzBov

+0

@zzzzBov - Sì. :) – Kriem

+0

Lo sfondo è a tinta unita? –

risposta

13

Non esiste un modo cross-browser per eseguire questa operazione al di fuori del webkit perché solo il webkit attualmente ha un background-clip: text e this extension to background-clip non è su traccia standard (per quanto ne so). Se vuoi rilassare i tuoi requisiti CSS3, puoi realizzare lo stesso effetto cross-browser con Canvas (o SVG), ma in questo caso stai parlando solo dei browser compatibili con HTML5.

5

Al momento non esiste una modalità CSS "pura", ma esiste un modo per utilizzare i CSS e una certa duplicazione dei contenuti. Vedi my server side css gradient text solution here, che non richiede JavaScript o sfondo chiaro. Puoi anche fare questo lato client usando JavaScript, vedi cosa ha fatto Dragonlabs here.

+0

Molto impressionante e intuitivo. Grazie per questa opzione. –

+0

Ci scusiamo per il doppio commento, ma ho pensato che potrebbe essere utile aggiungere rapidamente la mia variante della soluzione: http://jsfiddle.net/P8k58/. Ho usato alcuni trucchi per farlo funzionare correttamente e per i miei scopi ho usato un'ombra di testo per completare l'effetto. Tuttavia, allo scopo di creare semplicemente uno splendore, ciò potrebbe facilmente essere fatto solo con i contenuti CSS (IE 8+ al massimo). –

+0

@JosephMarikle Grazie. E mi piace il tuo uso di: prima e: dopo. –

0

Come ho già indicato come commento nella risposta di zzzzBov, c'è un modo per ottenere un gradiente di testo solo in CSS3.

Se si prende lo PNG solution un po 'di più, si può fare lo stesso trucco con gradienti css3.

Ovviamente funziona solo per il testo su un colore di sfondo uniforme.

-1

migliore soluzione al momento è quello di utilizzare un colore a tinta unita come non-webkit fallback e quindi utilizzare la seguente tecnica (richiede webkit):

h1 { 
 
    color: $333; 
 
    font-size: 72px; 
 
    background: -webkit-linear-gradient(#eee, #333); 
 
    -webkit-background-clip: text; 
 
    -webkit-text-fill-color: transparent; 
 
}
<h1>Example</h1>

+0

non funziona su browser non webkit! – user2602584

+0

Ho già sottolineato che "richiede webkit" ..Hai avuto una soluzione migliore? Funziona in FF, Chrome e Safari .. utente @ user2602584 povero – sean2078