Problème avec du texte trop long

Eléphant du PHP | 351 Messages

27 oct. 2007, 16:03

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 :

Image

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

Eléphant du PHP | 445 Messages

27 oct. 2007, 17:40

Essayes de justifier ton texte.
Je te conseilles egalement un padding pour eviter que le texte touche la bordure.

Code : Tout sélectionner

text-align:justify; padding:4px;

Eléphant du PHP | 351 Messages

27 oct. 2007, 17:56

Rien ne change (mise à part le padding de 4px).

Eléphant du PHP | 445 Messages

27 oct. 2007, 18:13

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é.

Eléphant du PHP | 351 Messages

28 oct. 2007, 16:42

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.

Eléphant du PHP | 61 Messages

28 oct. 2007, 17:09

Elle fait combien la largeur de ton block ?
Site sur THEOPERATION M.D. -> Nouvelle version (100%)
Ton code, tu indenteras; et le bohneur, tu feras.

Mammouth du PHP | 19672 Messages

28 oct. 2007, 23:39

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 61 Messages

29 oct. 2007, 00:05

Ou tu assignes au block une largeur fixe et tu met text-align: justify avec un padding de 4 ou 5px :wink:
Site sur THEOPERATION M.D. -> Nouvelle version (100%)
Ton code, tu indenteras; et le bohneur, tu feras.

ViPHP
AB
ViPHP | 5818 Messages

29 oct. 2007, 15:29

Ou tu assignes au block une largeur fixe et tu met text-align: justify avec un padding de 4 ou 5px :wink:
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);

Eléphant du PHP | 351 Messages

02 nov. 2007, 11:51

Merci de votre aide.