Couleur du texte en fonction d'une variable
Résolu
Romain42mc
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
Salut à tous ;)
Alors voilà j'ai une question à propos de PHP (peut être aussi de HTML/CSS), elle est un peu compliquée à comprendre j'imagine ^^
Imaginons que sur un site, je dois afficher une valeur en chiffres (avec un echo), qui varie selon divers paramètres. Cette valeur peut se situer entre 0 et 100 (par exemple)
Ce que je cherche à faire, c'est faire en sorte que la couleur de la valeur affichée sur la page change en fonction de la variable elle-même. Par exemple :
- si la variable est "0", elle devra s'afficher en rouge
- si la variable est "50", elle devra s'afficher en jaune
- si la variable est "65", elle devra s'afficher en vert-jaune
- si la variable est "100", elle devra s'afficher en vert
Mais il faudrait que ce soit pareil pour chaque valeur, qu'il y ait un "dégradé" selon la valeur en fait (je sais, c'est peut-être pas très clair...)
Une image peut être mieux j'imagine : http://image.noelshack.com/fichiers/2013/35/1377966593-valeur.png
Il faudrait peut être créer une condition pour chacune des 100 valeurs possibles (de 0 à 100), mais ce serait fastidieux... et imaginez qu'il y ait 10000 cas possibles... :o
Ce que j'ai pensé à faire, c'est charger une image d'un dégradé en CSS (comme ci-dessus), prendre une couleur à un certain endroit sur la barre (à l'aide de la valeur, qui pourrait se convertir en % ou en px), et ensuite la récupérer pour la mettre sur le texte. Mais je ne vois pas trop comment mettre en oeuvre ça...
Voilà, donc si vous avez un truc, je vous remercie d'avance :)
Alors voilà j'ai une question à propos de PHP (peut être aussi de HTML/CSS), elle est un peu compliquée à comprendre j'imagine ^^
Imaginons que sur un site, je dois afficher une valeur en chiffres (avec un echo), qui varie selon divers paramètres. Cette valeur peut se situer entre 0 et 100 (par exemple)
Ce que je cherche à faire, c'est faire en sorte que la couleur de la valeur affichée sur la page change en fonction de la variable elle-même. Par exemple :
- si la variable est "0", elle devra s'afficher en rouge
- si la variable est "50", elle devra s'afficher en jaune
- si la variable est "65", elle devra s'afficher en vert-jaune
- si la variable est "100", elle devra s'afficher en vert
Mais il faudrait que ce soit pareil pour chaque valeur, qu'il y ait un "dégradé" selon la valeur en fait (je sais, c'est peut-être pas très clair...)
Une image peut être mieux j'imagine : http://image.noelshack.com/fichiers/2013/35/1377966593-valeur.png
Il faudrait peut être créer une condition pour chacune des 100 valeurs possibles (de 0 à 100), mais ce serait fastidieux... et imaginez qu'il y ait 10000 cas possibles... :o
Ce que j'ai pensé à faire, c'est charger une image d'un dégradé en CSS (comme ci-dessus), prendre une couleur à un certain endroit sur la barre (à l'aide de la valeur, qui pourrait se convertir en % ou en px), et ensuite la récupérer pour la mettre sur le texte. Mais je ne vois pas trop comment mettre en oeuvre ça...
Voilà, donc si vous avez un truc, je vous remercie d'avance :)
A voir également:
- Couleur du texte en fonction d'une variable
- Excel cellule couleur si condition texte - Guide
- Fonction si et - Guide
- Transcription audio en texte word gratuit - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Mettre un texte en majuscule - Guide
2 réponses
Oui je savais pour les couleurs en HTML mais je ne voyais pas trop comment faire ce genre de truc.
C'est précisément ce que je cherchais, merci :D
C'est précisément ce que je cherchais, merci :D
Bonsoir,
Les couleurs utilisables en HTML sont au format #RRVVBB (rouge, vert, bleu ; valeurs exprimées en hexadécimal)
Pour l'instant, ignorons le bleu qui ne nous sert pas.
Pour passer du rouge au vert en passant par le jaune, ce serait :
- pour une valeur comprise entre 0 et 50% la couleur verte doit croître de 00 à FF (0 à 255) soit sur une plage de 255. 1% = 255/50
- pour une valeur comprise entre 50 et 100% la couleur rouge doit décroître de FF à 00 (255 à 0) soit une plage de 255. 1% = 255/50
ça te convient ?
Les couleurs utilisables en HTML sont au format #RRVVBB (rouge, vert, bleu ; valeurs exprimées en hexadécimal)
#FF0000 = rouge #00FF00 = vert #0000FF = bleu #FFFF00 = jaune (rouge + vert)
Pour l'instant, ignorons le bleu qui ne nous sert pas.
Pour passer du rouge au vert en passant par le jaune, ce serait :
Format : RRVV RRVV RRVV Valeurs hex: FF00 -> FFFF -> 00FF 0% 50% 100% Couleurs : Rouge Jaune Vert
- pour une valeur comprise entre 0 et 50% la couleur verte doit croître de 00 à FF (0 à 255) soit sur une plage de 255. 1% = 255/50
- pour une valeur comprise entre 50 et 100% la couleur rouge doit décroître de FF à 00 (255 à 0) soit une plage de 255. 1% = 255/50
<html> <head> <title>Couleurs</title> </head> <body bgcolor="#000000"> <?php function couleur($valeur) { $point = floor(255/50); // Si hors limites, retour en bleu (pour tester) if($valeur<0 || $valeur>100) { return '#0000FF'; } switch($valeur) { case 0 : return '#FF0000'; break; // 0 = rouge case 50 : return '#FFFF00'; break; // 50 = jaune case 100: return '#00FF00'; break; // 100 = vert default : if($valeur<50) { return '#FF'.str_pad(dechex($valeur*$point),2,'0',STR_PAD_LEFT).'00'; } if($valeur>50) { return '#'.str_pad(dechex(255-floor(($valeur-50)*$point)),2,'0',STR_PAD_LEFT).'FF00'; } } } // Vérification de -2 à 102 inclus for($n=-2; $n<=102; $n++) { $couleur = couleur($n); echo "<font color='$couleur'><b>Ceci est la ligne numéro $n (".strtoupper($couleur).")</b></font><br/>\n"; } ?> </body> </html>
ça te convient ?
Bye.