Voici mon problème HTML:
<table style="width:100%">
<tr>
<td style="width:100%;overflow:hidden">
<div style="overflow:hidden;white-space:nowrap;text-overflow:Ellipsis;">long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long
</div>
</td>
</tr>
</table>
Voici ce que je voulais:
<div style="overflow:hidden;white-space:nowrap;text-overflow:Ellipsis;width:100%">long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long
</div>
C'est:
div
ne pas élargir les table
et td
div
dynamique de Ellipsis
d'ailleurs, de toute façon à minic text-overflow
sur Firefox?
Edit: corrigé moi-même en utilisant CSS:
table { table-layout:fixed; width:100%; }
Plutôt que d'utiliser table-layout: fixed;
pour votre table, vous pouvez utiliser cette astuce pour qu'un DIV occupe toujours tout l'espace d'un TD avec la fonctionnalité text-overflow: Ellipsis;
:
div { width: 0; min-width: 100%; }
L'astuce principale consiste à donner à width autre chose que auto/percent et à utiliser une largeur minimale de 100%;
div { width: 0; min-width: 100%; overflow: hidden; text-overflow: Ellipsis; white-space: nowrap; }
table.myTable { width: 100%; border-collapse: collapse; }
td { border: 1px solid #000; }
td.td1 { width: 100%; min-width: 50px; }
td.td2 { width: 100px; min-width: 100px; }
td.td3 { width: 150px; min-width: 150px; }
td.td4 { width: 50%; min-width: 50px; }
td.td5 { width: 50%; min-width: 50px; }
td.td6 { width: 150px; min-width: 150px; }
La table peut être de taille fluide ou de largeur fixe. Donnez juste quelques min-largeurs pour le contenu au besoin.
<table class="myTable">
<tr>
<td class="td1"><div>Very very very long text Very very very long text Very very very long text Very very very long text</div></td>
<td class="td2"><div>Content 2</div></td>
<td class="td3"><div>Content 3 also so very lonnnnngggg</div></td>
</tr>
</table>
<table class="myTable">
<tr>
<td class="td4"><div>Very very very long text Very very very long text Very very very long text Very very very long text</div></td>
<td class="td5"><div>Content 2 has very very very many texts in a very very very long way</div></td>
<td class="td6"><div>Content 3</div></td>
</tr>
</table>
Mon exemple complet:
<head>
<style>
table {
width:100%;
table-layout:fixed;
}
td {
overflow: hidden;
text-overflow: Ellipsis;
white-space: nowrap;
}
</style>
</head>
<body>
<table border="1">
<tr>
<td>CHAMPIONNAT</td>
<td>CHAMPIONNAT</td>
<td>CHAMPIONNAT</td>
<td>CHAMPIONNAT</td>
<td>CHAMPIONNAT</td>
<td>CHAMPIONNAT</td>
</tr>
</table>
</body>
pour moi,
<style type='text/css'>
table {
white-space: normal;
}
</style>
travaillé...