28173 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour,

Comment faire pour (en CSS, si celà est possible) pour que 30000 apparaisse comme 30 000 ?

J'avais bien pensé écrire 30 000 , mais celà ne sera pas compréhensible par un lecteur vocal ...

S'il existe une solution et que vous la connaissez, je suis preneur.

merci Smiley cligne
Tu peux faire quelque chose comme ça éventuellement, mais c'est pas jojo...
[#black][b]HTML[/b][/#]
30<span>000</span>

[#black][b]CSS[/b][/#]
span {margin-left:4px}
Ouais, pas jojo en effet Smiley cligne
Il n'existe pas de fonction CSS (que je ne connaitrai pas) qui permette de séparer les milliers, comme dans Excel ou Calc ? Smiley murf
Modifié par Gunner4902 (26 Jul 2007 - 13:02)
Gunner4902 a écrit :
Il n'existe pas de fonction CSS (...) qui permette de séparer les milliers ?

Non, pas à ma connaissance.

Pour le coup, je ne sais pas trop comment faire pour que ça soit compatible avec les lecteurs d'écran. Il est possible que ceux-ci gèrent malgré tout les grands nombres avec espaces (insécables ou non). Le sujet est peut-être traité quelque part sur le Web?

La question est posée ici, mais pas de réponse précise.
La solution, serait peut-être d'écrire 30000 en lettres, trente mille étant plus lisible que la suite numérique sans espace.
Mais dans le cas d'un nombre comme 42456 celà n'est plus très pratique ... Smiley murf
hum... peut être que la solution JavaScript est adaptée à ce besoin. Une fonction qui prend le nombre (en temps que chaîne de caractère) et qui rajoute un espace tous les 3 caractères en partant de la fin.
predator93 a écrit :
hum... peut être que la solution JavaScript est adaptée à ce besoin. Une fonction qui prend le nombre (en temps que chaîne de caractère) et qui rajoute un espace tous les 3 caractères en partant de la fin.

Ah oui tiens, ça serait intéressant ça. Smiley smile
Salut,

et pourquoi pas à ce moment là faire cette opération dans un langage côté serveur avec une fonction que tu appliquerais à chaque élément chiffré c'est sûr que ca peut être assez lourd mais ca peut aussi être une solution Smiley smile
Et bien cela serai un peu lourd en effet Smiley lol

enfin moi j'ai fait une table variables avec des chiffres qui doivent changer assez souvent sur des pages et comme cela pas la peine de changer tout les pages Smiley biggol
Modifié par Halindel (26 Jul 2007 - 14:11)
En regardant le topic "fonctions, méthodes, class et scripts utiles" dans le salon JS, je suis tombé sur ça. Je sais pas si c'est fiable.
Modifié par predator93 (26 Jul 2007 - 14:31)
Salut,

peut-être un peu lourd mais ça devrait fonctionner :
<?php
function separateur($matches) {
$nombre = number_format($matches[0], 0, ' ', ' ');
return ("$nombre");
}

$texte = 'il était 1 fois 123456 chiens qui mangèrent 456789 chats sur 123456789.';
$pattern = '/[0-9]+/';
$texte = preg_replace_callback($pattern,'separateur',$texte); 
echo $texte;
?>

A+
Je ne vois pas bien ce qu'apporte ta solution Heyoan: l'html produit contiendra des espaces, ce qui est justement ce que veux éviter notre ami...
Heyoan a écrit :
Ah bon ! (<-- compréhension du truc)

Ben alors je remballe Smiley confused ...

Bah, la fin de semaine approche, ça se comprend. Smiley ravi

predator93 a écrit :

hum... peut être que la solution JavaScript est adaptée à ce besoin. Une fonction qui prend le nombre (en temps que chaîne de caractère) et qui rajoute un espace tous les 3 caractères en partant de la fin.

+1
Pour la solution JS, je suis en train d'y penser, mais... les lecteurs d'écran interprètent Javascript (ou plutôt utilisent le navigateur avec lequel ils sont interfacés), et ce genre de fonction risque d'être appliquée. De sorte que le lecteur d'écran ne lira pas:
<span class="nombre">1000</span>

mais bien:
<span class="nombre">1 000</span>


Enfin je crois...
Ceci dit, les lecteurs d'écran doivent être régulièrement confronté à ce problème avec diverses applications. Donc peut-être lisent-il «mille» et non pas «un zéro zéro zéro» lorsqu'ils tombent sur «1 000». Dans ce cas, des espaces insécables feront tout à fait l'affaire.
Pages :