Il CSS Color Module Level 4 probabilmente supporterà la notazione esadecimale RGBA a 4 e 8 cifre!
Tre settimane fa (18 dicembre 2014) la bozza dell'editor CSS Color Module Level 4 è stata presentata al gruppo di lavoro CSS W3C. Anche se in uno stato che è fortemente suscettibile di cambiamento, la versione corrente del documento implica che in qualche modo futuro CSS vicino sosterrà sia la notazione esadecimale RGBA 4 e 8 cifre.
Nota: la seguente citazione ha ritagli di pezzi irrilevanti e la fonte potrebbe essere stata fortemente modificata al momento della lettura (come menzionato sopra, è una bozza dell'editor e non un documento finalizzato).
Se le cose sono cambiate notevolmente, ti preghiamo di lasciare un commento che mi faccia sapere per poter aggiornare questa risposta!
§ 4.2 Notazioni esadecimali RGB: #RRGGBB
La sintassi di a <hex-color>
è un <hash-token>
token il cui valore è composto da 3, 4, 6 o 8 cifre esadecimali . In altre parole, un colore esadecimale viene scritto come un carattere hash, "#", seguito da un numero di cifre 0-9
o lettere a-f
(il caso delle lettere non ha importanza - #00ff00
è identico a #00FF00
).
8 cifre
Le prime 6 cifre sono interpretate in modo identico alla notazione a 6 cifre. L'ultima coppia di cifre, interpretata come un numero esadecimale, specifica il canale alfa del colore, dove 00
rappresenta un colore completamente trasparente e ff
rappresenta un colore completamente opaco.
Esempio 3
In altre parole, #0000ffcc
rappresenta lo stesso colore di rgba(0, 0, 100%, 80%)
(un blu leggermente trasparente).
4 cifre
Questa è una variante più breve della notazione a 8 cifre, "espansa" allo stesso modo della notazione a 3 cifre. La prima cifra, interpretata come un numero esadecimale, specifica il canale rosso del colore, dove 0
rappresenta il valore minimo e f
rappresenta il massimo. Le tre cifre successive rappresentano rispettivamente i canali verde, blu e alfa.
Cosa significa questo per il futuro dei colori CSS?
Ciò significa che supponendo che questo non sia completamente rimosso dal documento di Livello 4, saremo presto in grado di definire i nostri colori RGBA (o colori HSLA, se sei uno di quei ragazzi) in formato esadecimale nei browser che supportano il Colore Sintassi del Livello 4 del modulo.
Esempio
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
Quando potrò utilizzarlo nei miei prodotti rivolti al cliente?
Tutte le battute a parte: attualmente è solo l'inizio del 2015, quindi questi non saranno supportati in nessun browser ancora per un po 'di tempo - anche se il tuo prodotto è progettato per funzionare solo con i browser più aggiornati probabilmente non vederlo presto in azione in un browser di produzione.
Visualizza il supporto del browser corrente per la notazione di colore #RRGGBBAA
Tuttavia, detto ciò, il modo in cui funziona CSS significa che possiamo effettivamente iniziare a usarli oggi! Se vuoi davvero iniziare a usarli in questo momento, se aggiungi un fallback qualsiasi browser non supportante semplicemente ignorerà le nuove proprietà fino a quando non saranno ritenute valide:
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
Finché visualizzi questa risposta su un browser che supporta le proprietà background
e color
nei CSS, l' <figure>
elemento nel risultato dello snippet sopra sarà molto simile a questo:
Utilizzando la versione più recente di Chrome su Windows (v39.0.2171) per ispezionare il nostro <figure>
elemento, vedremo quanto segue:
Il fallback esadecimale a 6 cifre viene sovrascritto dai rgba()
valori e i nostri valori esadecimali a 8 cifre vengono ignorati in quanto attualmente considerati non validi dal parser CSS di Chrome. Non appena il nostro browser supporta questi valori a 8 cifre, questi sostituiranno rgba()
quelli.
AGGIORNAMENTO 2018-07-04: Firefox, Chrome e Safari supportano questa notazione ora, Edge manca ancora ma probabilmente seguirà ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
sorprendentemente rappresentazione ottale sembra York un po 'rgb(0100, 0200,0300)
è#4080C0