Page 1 sur 1

Forcer un retour a la ligne

Posté : 17 mai 2006, 12:46
par agité
Bien le bonjour a vous,

j'aimerais savoir comment faire pour forcer un retour a la ligne automatiquement pour ne pas deformer mes cases et l'affichage sur mon site, definir un nombre maximum de caracteres pour ensuite faire un retour a la ligne et un nombre de caractere maximum ...

merci par avance :wink:

Posté : 17 mai 2006, 13:01
par Ryle
Normalement, c'est le navigateur qui gère les retours à la ligne. Tu peux le forcer en ajoutant des tags <br> ou en spécifiant des tailles max à tes containeurs, mais c'est à peu près tout ce que tu peux faire.

Sachant que le navigateur ne fera de retour à la ligne que lorsque la ponctuation l'autorise (tirets, espaces), si tu colles une chaine de caractère dépassant le width, ça pousse les bords..

Si malgré ça, tu as besoin de forcer les retour, il te faut réaliser une fonction qui comptera tes caractères et inserera des <br> aux bons endroits.. sachant qu'en fonction de la police, le nombre de caractère n'est pas du tout lié à la taille qu'ils occupent :
- wwwwwwwwww (10)
- iiiiiiiiii (10)

Posté : 17 mai 2006, 13:06
par jojolapine
je pense que le mieu est de se tourner vers les feuilles de styles et de fixer ta taille de cellule:
td {
width= 40px;
}
par exemple

Posté : 17 mai 2006, 13:25
par agité
Oui c'est exact je pense que fixer la taille des td est une bonne chose mais pour l'affichage general aussi !

merci pour le conseil

Posté : 17 mai 2006, 13:33
par agité
Même si je fixe la taille si le texte est trop important il agrandit le cadre :S

Posté : 17 mai 2006, 13:54
par charabia
C'est plutôt :

Code : Tout sélectionner

td { width: 40px; }
en css, pas avec un "=" :)

Sinon s'il t'agrandit quand même le cadre, c'est qu'il n'y a pas d'espace dans la phrase.

Posté : 17 mai 2006, 14:00
par ouckileou
Si malgré ça, tu as besoin de forcer les retour, il te faut réaliser une fonction qui comptera tes caractères et inserera des <br> aux bons endroits..
=> wordwrap() peut-être :P

Posté : 17 mai 2006, 14:23
par Ryle
Arf, vala, tout à fait.. un très bon exemple oukileou ! :) (j'l'avions completement zappé celle là)

Tu dois donc redevelopper une méthode qui fasse exactement la meme chose que wordwrap et... comment ? l'utiliser directement ? euh.... moui.. sans doute, c'est faisable.. mais c'est beaucoup moins drole nan ? ;)

Sinon je réitère, pour le coup du width, que ce soit en html ou en css, si le contenu est insécable (sans espace ni tiret), le navigateur ignorera la taille imposée et s'adaptera au contenu de la cellule...

Posté : 17 mai 2006, 14:39
par agité
$newtext = wordwrap($text, 20, "\n", 1 );
voila donc tout les 20 caractere maximum il me fait un espace et donc un retour a la ligne avec le textarea ca fonctionne niquel merci !

Posté : 17 mai 2006, 14:46
par jojolapine
C'est plutôt :

Code : Tout sélectionner

td { width: 40px; }
en css, pas avec un "=" :)

Sinon s'il t'agrandit quand même le cadre, c'est qu'il n'y a pas d'espace dans la phrase.
désolé j'ai pas fait gaffe écrit à la va vite :oops: