Page 1 sur 1
Problème avec du texte trop long
Posté : 27 oct. 2007, 16:03
par kevinf
Bonjour,
j'ai un livre d'or et pour contrer les personne qui font du texte trop long, afin de ne pas agrandir la page, j'ai ce code :
Code : Tout sélectionner
<div style='height:360px;overflow:auto;word-break:break-all;word-wrap:break-word;'>
Mais le soucis, est que même si un texte est "normal", et bien quand il arrive au bout de la page, il se coupe, je vais met une image pour comprendre :
Pour les "k", c'est ce que je voulais, mais pour le texte en dessous, regardez les parties en rouge, les mots sont coupés, ce n'est pas normal, que faire?
Merci
Posté : 27 oct. 2007, 17:40
par h0_noMan
Essayes de justifier ton texte.
Je te conseilles egalement un padding pour eviter que le texte touche la bordure.
Posté : 27 oct. 2007, 17:56
par kevinf
Rien ne change (mise à part le padding de 4px).
Posté : 27 oct. 2007, 18:13
par h0_noMan
Enleve ton word-break:break-all; et ton overflow:auto;
Normalement word-wrap:break-word; suffit.
Garde la padding:4px et le text-align:justify pour la lisibilité.
Posté : 28 oct. 2007, 16:42
par kevinf
je viens d'essayer ce que tu m'a dit et là le texte avec tout les "k" fait une ligne et donc déforme tout.
Posté : 28 oct. 2007, 17:09
par Power Web
Elle fait combien la largeur de ton block ?
Posté : 28 oct. 2007, 23:39
par Cyrano
Autre option : le mot le plus long en français fait 25 lettres (anticonstitutionnellement) : ajoute une validation bloquant les mots plus longs, ça devrait résoudre ton problème.
Posté : 29 oct. 2007, 00:05
par Power Web
Ou tu assignes au block une largeur fixe et tu met text-align: justify avec un padding de 4 ou 5px

Posté : 29 oct. 2007, 15:29
par AB
Ou tu assignes au block une largeur fixe et tu met text-align: justify avec un padding de 4 ou 5px

Non, ça ça va pas le faire.
J'ai cherché un moment comment faire ça en CSS mais pas moyen de trouver une solution universelle. J'emploie donc une méthode voisine de celle indiquée par Cyrano.
Un petit regex pour insérer un espace si un mot du message contient plus de $length caractères :
$message = preg_replace('/([^ ]{'.$length.'})/si','\\1'.' ',$message);
Posté : 02 nov. 2007, 11:51
par kevinf
Merci de votre aide.