2014-07-02 12 views
12

Ho spostato parte l'utilizzo di colori standard di CSS dichiarandoli orange, blue, aquamarine, ecc ..., e sono state usando rgb() in questo modo per gli stessi colori, rispettivamente, , rgb(255,165,0), rgb(0,0,255) e rgb(127,255,212) (grazie al pacchetto ColorHighlighter in ST3).Quali sono le differenze tra RGB vs RGBA diverso da 'opacità'

In caso di modifica di una sfumatura per bootstrap .btn mi sono imbattuto in rgba(). Una rapida ricerca spiega che a sta per alpha, e c'è un mucchio di matematica integrale attribuita a Catmull e Smith. È anche abbastanza facile trovare che il canale alfa sia usato per "alpha compositing", che può essere associato principalmente come "opacità".

  • Ci sono differenze tra i due diversi dall'opacità?
  • Perché non è vero convenzione per usare RGBA. (Sto assumendo questo dato che sono solo ora inciampare su questo)
  • Ci sono altre limitazioni che dovrebbero essere conoscono quando si usa RGBA() per il web?
  • Esiste una scelta rapida per dichiarare l'opacità accanto a un collegamento colore? (Cioè color: salmon:.5;)
  • Dal punto di vista sviluppatore web, ho bisogno di preoccuparsi per le differenze tra ARGB, RGBA, BGRA ordine dei byte per i diversi macchine INFO?
  • Altre informazioni importanti?
+1

_ "Ci sono differenze tra i due diversi dall'opacità?" _ No. Vedi http://dev.w3.org/csswg/css-color/#rgb-functions – j08691

risposta

18

RGB è un formato a 3 canali che contiene i dati per il rosso, verde, e blu. RGBA è un formato a 4 canali contenente dati per rosso, verde, blu e alfa.

Non c'è alcun uso per il canale Alpha oltre a rendere il colore trasparente/opaco (o parzialmente trasparente, traslucido).

In CSS, rgb() aveva un ampio supporto del browser per diversi anni prima che rgba() ricevesse lo stesso livello di supporto. Questo è uno dei motivi per cui troverai più rgb() nei CSS rispetto a rgba(). L'altro motivo è che la traslucenza non è qualcosa che generalmente usi ovunque.

È possibile trovare un valore RGB impacchettato in 16 bit, con 5 bit per Blu e Rosso e 6 bit per Verde (il verde ottiene più bit perché l'occhio è più perspicace rispetto alle tonalità di verde). È inoltre possibile trovare un valore RGBA compresso in 16 bit, con 5 bit per ogni colore e 1 bit per alpha. Con un solo bit, puoi solo rendere il colore completamente trasparente o non trasparente del tutto.

In genere oggigiorno, troverete RGB e RGBA confezionati in valori a 32 bit, con 8 bit per ciascun colore e 8 bit per alfa (o vuoto per RGB).

In CSS, i progettisti hanno deciso di utilizzare i valori 0-255 (l'intervallo per un valore a 8 bit) per il rosso, il verde e il blu, ma utilizzano un valore compreso tra 0.0 e 1.0 per il canale alfa. Il formato byte effettivo per il colore è irrilevante per gli sviluppatori web.

Nella mia esperienza, né rgb() né rgba() vengono utilizzati molto spesso in CSS. I colori esadecimali sono molto più dominanti e li hanno preceduti di molti altri anni.

HSL è in realtà un formato molto migliore per lavorare con i colori ed è supportato nei CSS (IE9 +, Firefox, Chrome, Safari e in Opera 10+.).

http://www.w3schools.com/cssref/css_colors_legal.asp

0

RGB è valori RGB standard (rosso, verde, blu)

RGBA è valori RGB standard (rosso, verde, blu + Alpha (aka opacità))

Non troverete qualsiasi colore variazioni. RGBA è una proprietà color css3.

Come supporto del browser più vecchio può essere limitato, si può decidere di utilizzare un colore di ripiego in quanto tale:

CSS:

div { 
    background-color: rgb(200, 54, 54); /* The Fallback */ 
    background-color: rgba(200, 54, 54, 0.5); 
} 
+2

OP ha una mezza dozzina di domande e tu solo ha ripetuto quello che ha detto che ha già scoperto. – j08691

+0

Ho inviato troppo presto. Ci scusiamo per questo j08691 – remixdesign

1

RGB è colori RGB standard, è già capire questo.

RGBa è colori rgb standard, ma con l'alfa/opacità anche.

Oltre a questo non c'è alcuna differenza, i colori codificano ancora lo stesso.

Problema con l'utilizzo di questo e altri stili di colore CSS3 è che non è sempre supportato. Qui è a link Ho trovato che ti dice quali versioni di browser lo supportano.

Dichiarazione alfa in CSS sarebbero simili RGBA (0, 0, 0, .3) con l'alfa essere un decimale o un numero intero da 1 a . 1 essendo opaco e 0 completamente trasparente.