Limiter la taille d'une div, ou enlever la scrollbar

Eléphant du PHP | 79 Messages

06 avr. 2005, 15:07

Bonjour,

dans une div utilisant overflow, cela rajoute des scrollbars si le texte dépasse.


<div style="width:830; height:500; overflow:auto; ">
</div>


Comment faire pour que le retour à la ligne soit forcé et pour ainsi ne pas avoir de scollbar horinzontale.
Ou supprimer la scrollbar horinzontal,

Si je mets width='100%' ca prend automatiquement la longueur du texte. Comme bloquer cette taille à celle de la cellule de tableau qui la contient ?

Est ce possible aussi de fixer la taille d'un <table> ou d'une <div> à la taille de l'écran, en compressant ce qui est dedans. Par exemple si je fait une ligne continue de 5000 caractère, le tableau va s'agrandir meme si je le fixe à 25% par exemple.

(ya plusieurs question là.... :roll: il suffit de répondre à l'une d'elle pour résoudre mon problème, et à toute pour combler ma curiosité)

merci !

Mammouth du PHP | 859 Messages

06 avr. 2005, 16:51

Le code que je t'ai donné a certes ce problème mais il est contournable en mettant ton texte dans une <table> et en définissant la taille de cette table.

Le <div> s'adaptera à cette taille sans que tu aies besoin de lui définir une largeur.

C'est exactement la méthode que j'ai appliqué ;)

Eléphant du PHP | 79 Messages

07 avr. 2005, 11:12

Heuu....

Code : Tout sélectionner

<div style=" height:500; width=50; overflow:auto;"> <table width="50" height="200" border="5" bgcolor="yellow"> <tr width="50"> <td width="50"> fhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh </td> </tr> </table> </div>
Ma div ne fait pas du tout 50, mais s'adapte à la longueur du texte.
Ne que je veux faire c'est que les hhhhh revienne à la ligne quand il arrive au bout du tableau.
Un truc comme ca :

hhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhh

Sous firefox ca change rien du tout, sous Internet Explore cela réduire la div, mais sans faire de retour à la ligne, et donc ya encore plus de scrollbar horizontale !

Je veux héradiquer cette scrollbar horizontale, je veux juste la verticale !

Kylineos
Invité n'ayant pas de compte PHPfrance

15 avr. 2005, 16:42

Bonjour, je pense que c'est à peu près ça que tu cherche :

ta classe de div
Pas d'overflow, pas de scroll, juste un retour a la ligne automatique quand
on arrive a la fin de l'espace défini par ta div. :)

Code : Tout sélectionner

.laclassequicoupelesmotsaulieudefairedeslignesenormes { word-wrap: break-word; }
perso, j'ai cherché 3plombes cette propriété et je suis content de la partager :) bonne chance.

Kylineos
Invité n'ayant pas de compte PHPfrance

16 avr. 2005, 11:22

Bon, je suis Désolé de vous annoncer ça, mais il semblerait que la propriété word-wrap ne fonctionne pas sous la 1.0.2 de firefox....
soyons patients.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 avr. 2005, 11:50

As-tu essayé avec

Code : Tout sélectionner

overflow:scroll
Plus d'infos sur le overflow...

Eléphant du PHP | 79 Messages

18 avr. 2005, 09:38

Merci beaucoup Kylineos, c'est exactement ce que je cherchais !!! :P

Kylineos
Invité n'ayant pas de compte PHPfrance

18 avr. 2005, 17:47

Dans le cas d'un formulaire, ( et pour ce coup la, ça marche sur tous les navigateurs )

On peut ajouter un argument à une "textarea" qui est wrap="off/physical/virtual".

Le formulaire ( pour wrap="physical" ) envoie les données texte avec la fonction de wrap et le texte ne sera donc plus interpreté au kilomètre.
Voila. Bon courage. :).
et vivement le jour ou tous les navigateurs seront conformes aux standards ;) .

koalacool
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 14:35

bonjour, la fonction overflow-y : scroll des div ne fonctionne pas sous firefox. je voudrais savoir si vous aviez une solution alternative à ce problème. j'ai trouvé des scripts DHTML qui palient à ca mais ils sont très galères à mettre en place dans la page que je fais.

D'avance merci

Mammouth du PHP | 859 Messages

04 mai 2005, 15:04

Un overflow: auto avec un height plus petit que la taille de texte qu'il doit contenir et bingo ;)

fabb
Invité n'ayant pas de compte PHPfrance

06 mai 2005, 15:51

j'ai testé sous ie et firefox et le retour a la ligne forcée ne fonctionne pas

voici mon code:

<html>
<head><style type="text/css">
.trbleu{background-color:#CCFFFF}
.test{word-wrap: break-word;}
</style></head>
<body>
<table border="8" width="11px" class="test">
<tr class="trbleu">
<td class="test">ciejcoijfciejrijejcijrecijreci,rei,cire,crencrnejcnejncrecjrffhurhfurijijfriijijiejirjoiejiofjoirejfhreuheydettezftfezytfqtfw
</td>
</tr>
<tr>
<td class="test">totto</td>
</tr>
</table>
</body>
</html>

George Abidbol
Invité n'ayant pas de compte PHPfrance

15 juin 2005, 11:16

Met des espaces dans ta chaine de caractere... sinon comment veux tu que le navigateur sache où couper ton mot!!

](*,)

xaccrocheur
Invité n'ayant pas de compte PHPfrance

19 juin 2005, 13:24

Met des espaces dans ta chaine de caractere... sinon comment veux tu que le navigateur sache où couper ton mot!!

](*,)
Heu mé c'est pas ça justement l'idée ? La *césure* des mots HORS espace ?

Perso, je cherche encore comment COUPER au milieu d'une chaine de caracteres (typique : Une URL à rallonge dans une liste de sujets, qui, précisément, ne contient PAS d'espaces...?

'rci !

pX (http://www.halluci.net - traitement de r&eacute;alité / reality processing)

gb
Eléphanteau du PHP | 12 Messages

28 juin 2005, 10:56

sinon tu peux faire ca à la main.
suffit de compter le nbre de caractère de chaque mot de ton message : si un mot depasse xx caractères tu inscères un \n ou un <br>.
peut-etre un peu "sale" comme méthode mais ca a le mérite de fonctionner ;)


edit : peut-etre qu'un max-width en css ferait aussi l'affaire, à tester.

LIAMM
Invité n'ayant pas de compte PHPfrance

15 juil. 2005, 22:52

Peut-être pourrais-tu mettre des marqueurs <WBR> aux endroits où le texte pourrait être coupé, <WBR> sert pour suggérer au navigateur des retours à la ligne si c'est nécessaire.