Magazine Informatica

CSS3: RGBa vs Opacity

Creato il 15 aprile 2010 da Dymissy

Tra le tante novità che la specifica del CSS3 ha introdotto, c’è la proprietà RGBa che ci consente di assegnare un valore di opacità ad un colore di sfondo in formato RGB. La prima reazione che ho avuto quando vidi per la prima volta questa proprietà fu di pensare a cosa potesse servire se già era presente la proprietà opacity.

Pensandoci bene, però, la differenza tra le due proprietà è sostanziale e non possono essere utilizzate come sostitute l’una dell’altra. Vediamo insieme perchè.

Innanzitutto vediamo come funzionano entrambe.

RGBa

La proprietà prende in ingresso quattro parametri, i tre valori del RGB e la percentuale di opacità:

view source print?

1 div { background-color: rgba(255,0,0,0.7); }

Opacity

La proprietà assegna all’oggetto un valore di trasparenza compreso tra 0 e 1.

view source print?

1 div { opacity: 0.7; }

Quale è la differenza tra le due però?

Mentre l’opacità imposta un valore di trasparenza all’elemento e tutto il suo contenuto, la proprietà RGBa imposta un valore di trasparenza all’oggetto, lasciando inalterato il valore degli elementi contenuti al suo interno.

Vediamo nel dettaglio di cosa si parla, fornendo degli esempi.

Avendo due box e, dando l’opacità ad uno dei due box, qualunque cosa contenuta all’interno eredita il valore di trasparenza, ottenendo un risultato come il seguente:

CSS3: RGBa vs Opacity

Come possiamo vedere, anche il testo contenuto all’interno eredita la trasparenza.

Utilizzando l’RGBa, invece, il risultato sarebbe il seguente:

CSS3: RGBa vs Opacity

Il testo, in questo caso, non eredita l’opacità e viene visualizzato correttamente. La trasparenza è data solo al colore di sfondo del div.

I due esempi sono disponibili ai seguenti link:


Ritornare alla prima pagina di Logo Paperblog