traiter les décimales avec le CSS..?

Eléphanteau du PHP | 19 Messages

16 mars 2015, 16:01

Bonjour

Je pense que le sujet est peut etre mal placé, puisque comporte du CSS, mais je tente ici . Merci de déplacer au besoin.

La question : j ai une page de resultats avec des prix, et des notes/rating. Certains notes comportent des décimales (15.24)
Comment traiter ces décimales pour qu'elles s'integrent coorectement dans un style CSS fait de petits cadres..?
Lorsque j'ai un chiffre rond , c'est ok pour mon CSS, mais lorsqu'il y a une décimale, c'est le souc, c'est pas propre, le chiffre est tronqué...
sample-decimale.png
Donc comment fait on pour reconnaitre lorsque le resultat est une decimale et changer le CSS, avec un IF je suppose...?

Merci
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Eléphanteau du PHP | 19 Messages

16 mars 2015, 16:32

avec un peu de code ça peut etre mieux ^^

Code : Tout sélectionner

<style> .bloc6 { float:left; height: 143px; width: 130px; background-color: #d18fe2; margin: 0px; } .bloc6_a {padding:0px 2px;<br>margin: 0px;<br>color: white;} sub.bloc6_a {color: white;font-size: 20px;position: relative;line-height: 0;top: -2.5em;left:90px;} .bloc6_b {color: white;font-size: 130px;margin:-25px 6px 6px 2px; vertical-align:middle; line-height:normal; text-align:left; letter-spacing:-8px;} </style> <head> $champ4 = "note"; </head> <body> ...<div class="bloc6"> <? if ($r["$champ4"]>0) { echo '<div class="bloc6_a"><div class="bloc6_b"><center>'.$r["$champ4"].'</center></div><sub class="bloc6_a">/20</sub></div>'; } ?> </div>.... </body>

Mammouth du PHP | 688 Messages

16 mars 2015, 16:58

echo '<div class="bloc6_a"><div class="bloc6_b">'.round($r["$champ4"]).'</div><sub class="bloc6_a">/20</sub></div>';

Mammouth du PHP | 2278 Messages

16 mars 2015, 17:04

IL y a trois solutions:
1 convertir en en,tier (en prévenant qu'il s'agit dune conversion)
2 avoir un style plus large pour toutes les valeurs (en ajoutant ,00 pour conserver les alignements verticaux et si b esoin en mettant ,00 de la coulmeur bdu fond)
3 avoir deux styles différents pour les cellules
Quant à détecter si c'est un décimal ou pas, il y a le php is_float qui suppose que la valeur est un nombre (cf is_numeric)
cf http://php.net/manual/fr/function.is-float.php
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 19 Messages

16 mars 2015, 18:27

Merci de vos conseils , je teste demain ;-)

chanteur006
Invité n'ayant pas de compte PHPfrance

17 mars 2015, 13:44

ok tof73, donc avec ta ligne, j'ai pas de conditions, on est d'accord? comment je fais pour appliquer un ccs sous condition..?

" Si décimale (is_float) , echo tel css, else, echo tel css.."
Quelle syntaxe je peux utiliser?

Code : Tout sélectionner

<? if ($r["$champ4"]>0 AND (is_float)) { echo '<div class="bloc6_d"><div class="bloc6_e"><center>'.$r["$champ4"].'</center></div><sub class="bloc6_a">/20</sub></div>'; } else { echo '<div class="bloc6_a"><div class="bloc6_b"><center>'.$r["$champ4"].'</center></div><sub class="bloc6_a">/20</sub></div>'; } ?>

Mammouth du PHP | 2278 Messages

17 mars 2015, 14:39

un truc dans ce genre:
<style>
*.vert
{
	background-color:green;
}
*.jaune 
{
background-color:yellow;
}
</style>
<?PHP
$valeur = 12; 
$decimal = is_float($valeur);
var_dump($decimal);
$style = ($decimal== true) ? "class='vert'": "class= 'jaune'"; // attention aux quotes simples et doubles!!!
?>
<table>
<TR>
<td <?php echo ($style) ?> ><?PHP echo ($valeur) ?></td>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

chanteur006
Invité n'ayant pas de compte PHPfrance

17 mars 2015, 15:10

donc pour moi ça doit faire

Code : Tout sélectionner

<? $champ4= "note"; $decimal=is_float($champ4); var_dump($decimal); style= ($decimal==true) ? "class='bloc_a' ": "class= 'bloc_b' "; ?> <div><?php echo ($style) ?> ><?PHP echo ($champ4) ?></div>
...et ça doit s'afficher correctement...je vais essayer ça ;-) merci

chanteur006
Invité n'ayant pas de compte PHPfrance

17 mars 2015, 15:27

...si je pose ça

Code : Tout sélectionner

<div class="bloc6"> <?php echo ($style) ?> <?php echo ($champ4) ?> </div>
l'affichage n'est que "class= 'bloc_b' note " dans mon carré..

A la base j'ai un IF

Code : Tout sélectionner

<? if ($r["$champ4"]>0) { echo '<div class="bloc6_a"><div class="bloc6_b"><center>'.$r["$champ4"].'</center></div><sub class="bloc6_a">/20</sub></div>'; } ?>
qui affiche la note, entiere ou décimale...

ya un probleme de syntaxe, non..?

Mammouth du PHP | 2278 Messages

17 mars 2015, 17:51

<div <?php echo ($style) ?> ><?PHP echo ($champ4) ?></div>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 2278 Messages

17 mars 2015, 17:53

explicatin a posteriori
<div class="bloc6"> une fis que tu as fermé le <div> ton echo affiche
<?php echo ($style) ?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 2278 Messages

17 mars 2015, 18:57

$champ4= 'note';
$decimal=is_float($champ4);
Tu dois pouvoir faire ca:
var_dump($decimal);
$style= ($decimal==true) ? "class='bloc6 bloc_a' ": "class= 'bloc6 bloc_b' ";
?>
<div <?php echo ($style) ?> ><?PHP echo ($champ4) ?></div>
<div <?php echo ($style) ?> ><?PHP echo ($champ4) ?></div>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD