web-dev-qa-db-fra.com

Représentation hexadécimale d'une couleur avec canal alpha?

Existe-t-il une norme W3 ou toute autre norme remarquable sur la manière de représenter une couleur (y compris un canal alpha) au format hexadécimal?

Est-ce #RGBA ou #ARGB?

99
Patrick Klug

En CSS 3, pour citer la spécification, "il n'y a pas de notation hexadécimale pour une valeur RGBA" (voir spécification CSS de niveau ). À la place, vous pouvez utiliser la notation fonctionnelle rgba () avec des décimales ou des pourcentages, par exemple. rgba (255, 0, 0, 0.5) serait rouge transparent à 50%. Les canaux RVB sont 0-255 ou 0% -100%, alpha est 0-1.

En CSS 4 *, vous pouvez spécifier le canal alpha à l'aide des 7ème et 8ème caractères d'une couleur hexagonale à 8 chiffres ou du 4ème caractère d'une couleur hexadécimale à 4 chiffres (voir Spécification CSS Niveau 4 *)

À partir de mai 2019, on peut s’attendre à ce que plus de 80% des utilisateurs comprennent le format #RGBA

  • Firefox supporte cette syntaxe depuis Firefox 49 ( bug 567283 de Mozilla ).
  • Safari prend en charge cette syntaxe depuis Safari 10.
  • Chrome prend en charge cette syntaxe depuis Chrome 62. Pour les versions antérieures, vous pouviez activer l'utilisation de cette syntaxe par les fonctionnalités Web expérimentales. Voir Chromium Issue 618472 et bug Webkit 15085 .
  • Les applications Android qui ciblent Android P ou plus récent peuvent utiliser cette syntaxe
  • Opera supporte cette syntaxe dans Opera 52 (ou Opera 39 lorsque les fonctionnalités Web expérimentales sont activées).).
  • IE 11 et EdgeHTML 18 (Edge 44) ne prennent pas en charge cette syntaxe. Les versions d'Edge basées sur le chrome supporteront cette syntaxe.

Les renseignements à jour sur le soutien du navigateur sont disponible sur CanIUse.com

* Techniquement toujours en projet, mais étant donné le support du navigateur, il est peu probable que cela change.

71
thelem

Il semble qu'il n'y ait pas de format alpha hexadécimal: http://www.w3.org/TR/css3-color/

Quoi qu’il en soit, si vous utilisez un préprocesseur CSS comme SASS, vous pouvez passer un hexagone à rgba : background:

rgba(#000, 0.5);

Et le préprocesseur convertit simplement le code hexadécimal en rgb automatiquement.

83
guitarranalon

Je ne suis pas sûr s'il existe une norme officielle-

RGBA est la représentation que j'ai vue pour Web Macromedia et que d'autres utilisent ARGB

Je crois que RGBA est la représentation la plus commune.

Si cela aide, cela vient de W3 pour CSS3
http://www.w3.org/TR/css3-color/#rgba-color

[~ # ~] éditer [~ # ~] (Patrick): citation du lien W3 ci-dessus

Contrairement aux valeurs RVB, il n'y a pas de notation hexadécimale pour une valeur RVBA.

14
Kelly Gendron

Chrome 52+ prend en charge alpha hex:

background: #56ff0077;

Pour les anciens navigateurs, vous devrez utiliser:

background-color: rgba(255, 220, 0, 0.3);
6
Oded Breiner

Vous pouvez essayer de placer la couleur hexadécimale dans le sélecteur de couleur de GIMP ou de la boutique photo pour obtenir la valeur RVB, puis en utilisant la valeur alpha. par exemple. le rouge est #FF0000 ou rgb(255,0,0) si vous voulez du rouge avec une valeur alpha de 0,5 alors rgba(255,0,0,.5).

Peut-être pas exactement ce que vous vouliez, mais cela aide, espérons-le.

3
Jinjubei