72 votes

Y a-t-il de bonnes raisons d'utiliser l'hexagone plutôt que le décimal pour les valeurs de couleur RVB dans les CSS ?

rgb(255,255,255) est disponible depuis CSS1. Mais #ffffff semble être beaucoup plus populaire.

Évidemment, il est légèrement plus compact. Je sais que l'hexagone est plus étroitement lié aux octets sous-jacents et je comprends qu'il y aurait des avantages à effectuer des opérations arithmétiques sur ces valeurs, mais ce n'est pas quelque chose que vous allez faire avec CSS.

Les valeurs de couleur ont tendance à être créées par des concepteurs (comme moi) qui ne rencontreraient jamais la notation hexadécimale ailleurs, et sont beaucoup plus familiers avec la notation décimale qui est la principale façon de spécifier la couleur dans les applications qu'ils utilisent - en fait, j'en ai rencontré pas mal qui ne réalisaient pas comment une valeur hexadécimale donnée se décompose en composantes RVB et supposaient qu'elle n'était pas directement liée à la couleur du tout, comme une référence du système de couleurs Pantone (par exemple PMS432).

Alors, une raison de ne pas utiliser les décimales ?

3 votes

Mise à jour : merci beaucoup pour les réponses. Je ne pense pas qu'une raison impérieuse d'utiliser l'une ou l'autre soit évidente, et je n'ai donc pas marqué de réponse. Mais quelques points secondaires intéressants, en particulier celui de WCWedin sur décimal étant requis pour RGBA

0 votes

Hmm, je ne suis pas sûr de ce que je fais de mal avec la syntaxe de lien de Markdown ?

39voto

edeverett Points 4094

Les valeurs hexagonales sont plus faciles à copier et à coller depuis votre éditeur d'images préféré.

Les valeurs RVB sont plus faciles à manipuler avec Javascript.

(Ma valeur de couleur hexagonale préférée est #EDEDED et un site que nous avons réalisé pour un client impliqué dans le sport automobile avait une couleur de fond de #F1F1F1 :-)

Ed.

25voto

WCWedin Points 998

Il convient de noter que si vous souhaitez saisir une valeur RGBA, la notation hexadécimale n'est pas prise en charge ; autrement dit, vous ne pouvez pas simuler avec #FFFFFFff. En fait, la valeur alpha doit être un nombre compris entre 0,0 et 1,0 inclus. (Consultez cette page pour la prise en charge des navigateurs - comme toujours, IE est en tête du peloton ;) )

Le support des couleurs HSL et HSLA -- qui est très convivial -- est également fourni avec une syntaxe similaire à celle du style RGB(). Si un concepteur devait utiliser les deux types de valeurs de couleur dans la même feuille de style, il pourrait opter pour des valeurs décimales plutôt que des codes hexadécimaux pour des raisons de cohérence.

1 votes

Comme RGBA devient plus largement utilisé (il est assez utile), je m'attends à une résurgence de l'utilisation de la notation décimale. Bonne remarque !

0 votes

Ouais, bon point pour le RGBA. Je ne suis pas sûr que les concepteurs utiliseront vraiment les valeurs HSL pour spécifier les valeurs des couleurs, bien que ce soit un modèle intuitif lorsqu'il est utilisé pour les sélecteurs de couleurs, les filtres de réglage des couleurs, etc.

1 votes

Ce qu'il y a de bien avec HSL, c'est que vous pouvez facilement créer des combinaisons de couleurs à la volée et avoir une bonne idée de ce à quoi elles ressembleront avant même de rafraîchir la page. Il n'est pas nécessaire d'ouvrir Photoshop pour choisir trois nuances du même rouge. Même les couleurs complémentaires sont faciles à repérer ; les rotations de 120 degrés sont triviales en RVB, mais je ne suis pas sûr que les 180 degrés puissent être calculés aussi facilement.

8voto

Bill the Lizard Points 147311

La raison principale est probablement la compacité, comme vous l'avez mentionné. #ffffff peut même être encore raccourci à la #fff notation sténographique.

Une autre raison possible est que l'on perçoit une augmentation des performances en évitant au navigateur de convertir l'adresse IP de l'utilisateur. rgb la notation.

6 votes

Il y a une différence de performance perçue ? J'ai fait une double lecture de votre commentaire pour vérifier s'il avait été écrit avant 1991. Est-ce que cela repose sur des données ?

1 votes

LMAO. Une expérience de pensée pour tous ceux qui pensent "épargner au navigateur la peine" : Pensez-vous que les ordinateurs consomment nativement des valeurs hexadécimales encodées en ASCII, pas plus que des valeurs décimales ? Dans les deux cas, le navigateur doit convertir les chaînes ASCII en nombres 8 bits dont le moteur de rendu a besoin. De plus, tout avantage de taille des couleurs hexadécimales n'aura aucune importance dans un scénario non-contourné.

1 votes

@underscore_d Vous agissez comme si tous les navigateurs étaient créés de manière égale.

6voto

Greg Points 132247

Traditionnellement, le HTML a toujours utilisé des couleurs hexagonales, ce qui a été repris dans le CSS. Pensez à <font color="#ffffff">

4voto

Jon Skeet Points 692016

Divers éléments accepteront une seule valeur hexagonale alors qu'ils peuvent avoir différentes façons d'entrer trois valeurs décimales. Il y a aussi le fait que c'est toujours 6 caractères (ou 3, il est vrai - plus le #) ce qui facilite le balayage d'une liste d'entre eux.

Juste quelques pensées aléatoires à ajouter au mélange...

3 votes

Eh bien, c'est généralement 6 caractères. Il peut aussi être de 3 caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X