Je sais que tu peux écrire ...
background-color: #ff0000;
... si vous voulez quelque chose de rouge.
Et vous pouvez écrire ...
background-color: rgba(255, 0, 0, 0.5);
... si vous voulez quelque chose de rouge et de translucide.
Existe-t-il une manière concise d'écrire des couleurs partiellement transparentes en hexadécimal? Je veux quelque chose comme:
background-color: #ff000088; <--- the 88 is the alpha
... ou ...
background-color: #ff0000 50%;
Je reçois toutes mes couleurs en hexadécimal, et devoir les convertir toutes à l'échelle décimale 0-255 est ennuyeux.
rgb(0xff,\x80,#44)
étonnamment la représentation octale semble york un peurgb(0100, 0200,0300)
est#4080C0
background-color: opacify(#ff0000, 0.5);
oubackground-color: transparentize(#ff0000, 0.5);
Vous pouvez également fournir des variables de couleur hexadécimales Sass à ces fonctions Sass.Réponses:
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!
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
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:
Tant que vous visualisez cette réponse sur un navigateur qui prend en charge les propriétés
background
etcolor
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 remplacentrgba()
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 ).
la source
/* Fall... foward? */
»Je suggère d'aller de l'avant. Fallback et Jumpforward: ^ pJ'ai trouvé la réponse après avoir publié l'amélioration de la question. Désolé!
MS Excel a aidé!
ajoutez simplement le préfixe Hex à la valeur de la couleur hexadécimale pour ajouter un alpha qui a l'opacité équivalente à la valeur%.
(en rbga, le pourcentage d'opacité est exprimé en décimal comme mentionné ci-dessus)
la source
#FF00000C
est équivalent àrgba(255,0,0,0.05)
?#000000
devient#7F000000
.la source
var rgb = '#ffabcd'; var a = '0.5'; var matches = rgb.match(/#([\da-f]{2})([\da-f]{2})([\da-f]{2})/i); var rgba = 'rgba(' + matches.slice(1).map(function(m) { return parseInt(m, 16); }).concat(a) + ')';
<div style={ { backgroundColor: `rgba(${ parseInt(color.substring(1,3),16) }, ${ parseInt(color.substring(3,5),16) }, ${ parseInt(color.substring(5,7),16) }, 0.5)` } }></div>
Voir ici http://www.w3.org/TR/css3-color/#rgba-color
Ce n'est pas possible, probablement parce que 0xFFFFFFFF est supérieur à la valeur maximale pour les entiers 32 bits
la source
#ffffff
(six chiffres hexadécimaux) est en fait une valeur de couleur de 24 bits ; 0xFFFFFFFF est en fait 2³² − 1, et peut être représenté comme un entier 32 bits non signé . Je pense que la raison pour laquelle#ffffffff
(huit chiffres hexadécimaux) n'est pas spécifié est à la fois que les couleurs CSS sont enracinées dans l'espace colorimétrique sRGB et qu'une notation à huit chiffres hexadécimaux serait ambiguë avec un périphérique d'affichage qui prend en charge une profondeur de couleur de 32 bits. N'oubliez pas qu'il y en a toujours#fff
pour que cela signifiergb(100%, 100%, 100%)
- blanc - à la fois avec une profondeur de couleur de 8 bits (256 couleurs) et 16 bits (65536 ou 64K couleurs).Chrome 52+ prend en charge l' alpha hex:
la source
¯\_(ツ)_/¯
Utiliser
red
,green
,blue
pour convertir en RGBA:la source
J'ai bien peur que ce ne soit pas possible. le
rgba
format que vous connaissez est le seul.la source
Si vous pouvez utiliser MOINS, il existe une fonction de fondu.
la source
rgba(base-color, 0.5)
Prince charmant:
Seul Internet Explorer autorise la couleur hexadécimale de 4 octets au format ARGB, où A est le canal Alpha. Il peut être utilisé dans les filtres dégradés par exemple:
Où dir peut être: 1 (horizontal) ou 0 (vertical) Et les chaînes de couleurs peuvent être des couleurs hexadécimales (# FFAAD3) ou des couleurs hexadécimales argb (# 88FFAAD3).
la source
En Sass on peut écrire:
comme cela a été suggéré dans la représentation hexadécimale d'une couleur avec canal alpha?
la source
Eh bien, vous devrez apprendre différentes notations de couleur.
Kuler vous donne une meilleure chance de trouver la couleur et en plusieurs notations.
Hex n'est pas différent de RGB, FF = 255 et 00 = 0, mais c'est ce que vous savez. Donc, d'une certaine manière, vous devez le visualiser.
J'utilise Hex, RGBA et RGB. Sauf si une conversion de masse est requise, cette opération manuelle vous aidera à vous souvenir de quelques 100 couleurs et de leurs codes.
Pour la conversion de masse, écrivez un script comme celui donné par Alarie. Amusez-vous avec les couleurs.
la source
pourquoi ne pas utiliser
background-color: #ff0000; opacity: 0.5; filter: alpha(opacity=50); /* in IE */
si vous ciblez une couleur pour un texte ou probablement un élément, cela devrait être beaucoup plus facile à faire.
la source
opacity
propriété css.