Le module CSS Color Level 4 prendra probablement en charge la notation RGBA hexadécimale à 4 et 8 chiffres!
Il y a trois semaines (18 décembre 2014), le projet de l'éditeur de CSS Color Module Level 4 a été soumis au groupe de travail CSS W3C. Bien que dans un état qui soit fortement susceptible de changer, la version actuelle du document implique que dans un futur assez proche, CSS supportera à la fois la notation RGBA hexadécimale à 4 et 8 chiffres.
Remarque: la citation suivante a des morceaux non pertinents et la source peut avoir été fortement modifiée au moment où vous lisez ceci (comme mentionné ci-dessus, c'est un brouillon de l'éditeur et non un document finalisé).
Si les choses ont beaucoup changé, laissez-moi un commentaire pour que je puisse mettre à jour cette réponse!
§ 4.2. Les notations hexadécimales RVB: #RRGGBB
La syntaxe de a <hex-color>
est un <hash-token>
jeton dont la valeur se compose de 3, 4, 6 ou 8 chiffres hexadécimaux . En d'autres termes, une couleur hexadécimale est écrite sous la forme d'un caractère de hachage, "#", suivi d'un certain nombre de chiffres 0-9
ou de lettres a-f
(la casse des lettres n'a pas d'importance - #00ff00
est identique à #00FF00
).
8 chiffres
Les 6 premiers chiffres sont interprétés de manière identique à la notation à 6 chiffres. La dernière paire de chiffres, interprétée comme un nombre hexadécimal, spécifie le canal alpha de la couleur, où 00
représente une couleur entièrement transparente et ff
représente une couleur entièrement opaque.
Exemple 3
En d'autres termes, #0000ffcc
représente la même couleur que rgba(0, 0, 100%, 80%)
(un bleu légèrement transparent).
4 chiffres
Il s'agit d'une variante plus courte de la notation à 8 chiffres, "développée" de la même manière que la notation à 3 chiffres. Le premier chiffre, interprété comme un nombre hexadécimal, spécifie le canal rouge de la couleur, où 0
représente la valeur minimale et f
représente le maximum. Les trois chiffres suivants représentent respectivement les canaux vert, bleu et alpha.
Qu'est-ce que cela signifie pour l'avenir des couleurs CSS?
Cela signifie qu'en supposant que cela ne soit pas complètement supprimé du document de niveau 4, nous serons bientôt en mesure de définir nos couleurs RGBA (ou couleurs HSLA, si vous êtes l'un de ces types) au format hexadécimal dans les navigateurs qui prennent en charge la couleur Syntaxe du module niveau 4.
Exemple
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. */
}
Quand pourrai-je l'utiliser dans mes produits destinés aux clients?
Toutes les blagues à part: ce n'est actuellement que le début de 2015, donc elles ne seront pas prises en charge dans aucun navigateur pendant un certain temps encore - même si votre produit n'est conçu que pour fonctionner sur les navigateurs les plus à jour, vous aurez probablement ne pas voir cela en action dans un navigateur de production de sitôt.
Afficher la prise en charge actuelle du navigateur pour la notation des couleurs #RRGGBBAA
Cependant, cela dit, la façon dont CSS fonctionne signifie que nous pouvons réellement commencer à les utiliser dès aujourd'hui! Si vous voulez vraiment commencer à les utiliser dès maintenant, tant que vous ajoutez une solution de repli, tous les navigateurs non pris en charge ignoreront simplement les nouvelles propriétés jusqu'à ce qu'elles soient jugées valides:
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>
Tant que vous visualisez cette réponse sur un navigateur qui prend en charge les propriétés background
et color
en CSS, l' <figure>
élément résultant de l'extrait ci-dessus sera très similaire à ceci:
En utilisant la version la plus récente de Chrome sur Windows (v39.0.2171) pour inspecter notre <figure>
élément, nous verrons ce qui suit:
La valeur de repli hexadécimal à 6 chiffres est remplacée par les rgba()
valeurs, et nos valeurs hexadécimales à 8 chiffres sont ignorées car elles sont actuellement considérées comme invalides par l'analyseur CSS de Chrome. Dès que notre navigateur prend en charge ces valeurs à 8 chiffres, celles-ci remplacent rgba()
celles.
MISE À JOUR 2018-07-04: Firefox, Chrome et Safari prennent désormais en charge cette notation, Edge est toujours manquant mais suivra probablement ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
étonnamment la représentation octale semble york un peurgb(0100, 0200,0300)
est#4080C0