Pour les pros du HTML - Programmation
Marsh Posté le 07-08-2001 à 11:43:09
HAL a écrit a écrit : Je souhaiterai afficher un texte saisi dans une zone de texte sans perdre les retours chariot mais avec une largeur max fixe (400 pixel). J'ai donc pensé à utiliser la balise <pre> Elle prend bien en compte le retour chariot mais pas la largeur. Et si je mets <pre width='400'> ça marche pas non plus Si l'un de vous à une solution, ce serai super ! |
ben à mon humble avis, les solutions qui se présentent à moi c'est :
- soit, via un javascript, écrire ton texte dans un tableau aux bonne dimensions, et avec la bordure = 0,
- soit, toujours avec un javascript, analyser la chaine de caractères saisie et à chaque caracère dont le code ASCII est 13 (le return), ben tu insère une balise <BR>
ok?
Marsh Posté le 07-08-2001 à 11:55:49
Hum bien que width fasse partie des specifications du W3C, il n'est pas supporte par la plupart des browser (sauf Mozilla sans doute ). Tu es sous quoi? Sous IE? Je pensais que la derniere version d'IE le supportait pourtant...my mistake !
De toute facon, a ma connaissance, <pre width="400"> (et non '400') ne specifie pas le nombre max de pixel mais le nombre max de caracteres...Ce qui change pas mal de chose !!
Essaie avec ca a l'esprit !! Peut etre que ca depasse parce que tu crois que c'est des pixels !
Marsh Posté le 07-08-2001 à 12:17:04
Rufo > Merci mais je ne connais pas le javascript. Pourrais tu me passer le bout de code ?
Willythekid > c'est pas <pre width="400"> ou <pre cols="80"> ?
Marsh Posté le 07-08-2001 à 12:25:20
Pour etre plus precis, <pre width="400"> est la bonne syntaxe et il n'y a d'ailleur pas d'autre attributs (a part les traditionnels font-machin_chose) pour ce tag. ("cols"...connait pas ! )
Seulement il ne specifie pas une longeur en pixel mais une longeur en caracteres !! Et ca change pas mal de chose (quand ca marche !)
Marsh Posté le 07-08-2001 à 14:14:58
Willythekid > OK pour les charactères plutot que les pixels
Pour info, COLS c'est pour Netscape seulement, il y a même un attribut WRAP.
Je pensais que c'était des pixels car la doc était pas super claire mais j'ai fait le test avec 10 pour voir et c'est pourri
Merci de la réponse
Pour le javascript, comment on analyse la chaîne pour mettre des <BR>
Marsh Posté le 07-08-2001 à 18:12:04
pour info, l'attribut WIDTH existe pour <PRE>, mais c'est en caractères.
sur http://perso.libertysurf.fr/chris.jav
ben tu peux trouver mon soft (OADSW) qui aide les gens à la création de pages html. Y'a une aide sur le HTML, et bientôt sur le php et javascript
sinon, côté javascript, c'est un truc du genre:
<SCRIPT>
var machaine = new String("" ) ;
function Analyse(Chaine)
{
var Resultat = new String("" ) ;
var Indice = new Number(0) ;
var Old_Indice = new Number(0) ;
while (Indice < Chaine.length)
{
if (Chaine.CharCodeAt(Indice) == 13)
{
if (Indice > 0)
{
Resultat = Chaine.slice(Old_Indice, Indice-1) ;
Resultat = Resulat.concat(' <BR> ') ;
Old_Indice = Indice - 1 ;
}
else
{
Resultat = Resultat.concat('<BR> ') ;
}
}
Indice++ ;
}
return Resultat ;
}
</SCRIPT>
...
<BODY....>
....
//tes données
<TEXTAREA ID=Txt>...</TEXTAREA>
<SCRIPT>
machaine = Txt.value ;
document.write(Analyse(machaine)) ;
</SCRIPT>
...
</BODY>
Marsh Posté le 07-08-2001 à 18:15:05
normalement, ça devrait marcher... peut-être une ou 2 modifs ...
Marsh Posté le 07-08-2001 à 11:32:58
Je souhaiterai afficher un texte saisi dans une zone de texte sans perdre les retours chariot mais avec une largeur max fixe (400 pixel).
J'ai donc pensé à utiliser la balise <pre>
Elle prend bien en compte le retour chariot mais pas la largeur. Et si je mets <pre width='400'> ça marche pas non plus
Si l'un de vous à une solution, ce serai super !