2009-07-18 11 views
1

J'ai quelque chose comme ceci:tableau HTML est plus grand que la fenêtre du navigateur

<table> 
    <tr> 
    <td><nobr>hello</nobr></td> 
    <td>this column can contain a lot of text, for some rows</td> 
    <td><nobr>world</nobr></td> 
    <td><nobr>hello world</nobr></td> 
    </tr> 
    ... more rows to come 
</table> 

Fondamentalement 3 des colonnes ont texte très court, et je veux qu'ils soient <nobr>. L'autre peut avoir un très long texte, et je veux qu'il prenne tout l'espace restant. Mais ce qui se passe, c'est que la table devient plus grande que la fenêtre entière du navigateur pour accueillir la grande colonne. Si le texte est vraiment gros il finira par se casser, mais il devient encore un peu hors de la fenêtre.

J'ai essayé de définir la largeur, la largeur maximale, mais pas de chance. Qu'est-ce que je fais mal?

+0

Pouvez-vous donner un exemple concret? – janhartmann

+0

Dans quel navigateur voyez-vous le problème? – random

+0

@Random Echo Firefox. @meep C'est exactement mon exemple. – ibz

Répondre

3

Votre exemple se comporte vraiment bien comme le dit Zyphrax.

Le problème que vous signalez ne peut se produire que si, dans la longue colonne, un mot est très volumineux ou s'il n'y a pas d'espace dans le contenu. Est-ce le cas? Peut-être utilisez-vous &nbsp; à la place des espaces, et cela empêche l'enroulement normal que font automatiquement les navigateurs.

Si le texte de la colonne n'emballe pas du tout, la plupart du temps vous utilisez &nbsp; ou vous avez oublié de fermer un <nobr> quelque part.

Je ne sais pas si cela aide.

+0

Vous avez raison. Une de mes rangées avait un énorme "mot" (pas d'espace). Je n'avais pas vu ça, puisque c'était loin dans ma table. Merci! – ibz

1

Je viens de le jeter dans mon navigateur (essayé à la fois IE8 et Firefox). Il est resté bien dans la fenêtre du navigateur:

<html> 
<body> 
    <table> 
    <tr> 
    <td><nobr>hello</nobr></td> 
    <td>this column can contain a lot of text, for some rows.</td> 
    <td><nobr>world</nobr></td> 
    <td><nobr>hello world</nobr></td> 
    </tr> 
    </table> 
</body> 
</html> 

Sinon, vous pourriez vouloir essayer des trucs comme largeur: 100% ou margin: 0 auto; sur la table.

1

Vous ne devriez pas utiliser la balise nobr, c'est et non une balise HTML valide. Utilisez plutôt le code CSS "white-space: nowrap".

par ex.

<td style="white-space:nowrap">your long text</td> 
Questions connexes