problème de div et de retour à la ligne

VaN
Mammouth du PHP | 1107 Messages

10 sept. 2008, 15:32

Bonjour,

Voici mon problème. J'ai un input, qui à chaque onkeyup, rafraichit un <div>, en lui fournissant sa valeur, grâc à un innerHTML en javascript.

Le problème est que lorsque le <div> s'allonge et qu'il remplit entièrement la page, le texte va à la ligne. Je voudrais éviter ça, et que le <div> continue de s'allonger, en sortant de la page visible, en créant une scroll horizontal.

Le problème en images :

Cas 1 : le texte est court, tout est normal.
Image

Cas 2 : le texte est long, et le <div> passe à la ligne, au lieu de créer un scroll horizontal sur la page.
Image

Voici le code HTML du <div> de Prévisualisation :

Code : Tout sélectionner

<div class="fullPreview"> <h1>Pr&eacute;visualisation</h1> <div id="previewBlock"> <div id="uploadedLogo"></div> <span id="preview"></span> <input type="hidden" name="textWidth" id="textWidth" /> <input type="hidden" name="textHeight" id="textHeight" value="10" /> </div> </div>
Et leurs propriétés CSS :

Code : Tout sélectionner

.fullPreview { position:absolute; top:200px; left:400px; border:1px dashed grey; margin:0 0 30px 0; border:1px solid #CCCCCC; padding:20px 10px 10px 10px; z-index:10; } .fullPreview h1 { float:left; font-size:14px; margin:-29px 0 0 0; padding:0 10px 0 10px; background-color:#FFFFFF; } #previewBlock { display:inline-block; border:1px solid red; min-height:10mm; } #preview { min-height:20px; border:1px solid green; } #uploadedLogo { display:block; }
Je viens de tâtonner en CSS, avec les position, les float, les display, mais je n'ai rien trouvé de concluant.

Une idée ?

Eléphant du PHP | 169 Messages

10 sept. 2008, 16:13

Essaye peut être de rajouter dans un premier temps pour la <div> dans laquelle tu veux un scroll :

Code : Tout sélectionner

overflow:auto;

Invité
Invité n'ayant pas de compte PHPfrance

10 sept. 2008, 16:48

pas de changement : / En fait ce n'est pas dans un div que le scroll doit apparaitre si le texte est long. C'est dans la page en elle même, le body. Le div lui ne fait que s'allonger, en fonction de la longueur du texte.

j'ai essayé un overflow dans le body, ça ne change rien.

Eléphant du PHP | 169 Messages

10 sept. 2008, 16:55

Si ça ne change rien c'est que tu dois avoir des propriétés parasites dans ton .css.

Essaye de repartir à zéro, proprement, et là essaye la propriété overflow (celle qui te donne une barre de scroll).

Eléphant du PHP | 447 Messages

10 sept. 2008, 17:37

A tous hasards, t'as essayé avec un max-height: 20px; dans #preview ?
Probably (only a) Human Problem?

Invité
Invité n'ayant pas de compte PHPfrance

10 sept. 2008, 18:28

A tous hasards, t'as essayé avec un max-height: 20px; dans #preview ?
Je viens de tester, marche pas. je vais essayer de voir si ça vient pas de mes div globaux, comme conseillé plus.

Mammouth du PHP | 959 Messages

14 sept. 2008, 01:12

peut-être un
str_replace(' ', '&nbsp;', $texte);
(espace insécable)
ferait l'affaire :P