Es ist möglich, dass dies funktioniert, aber es könnte sich irgendwann in der Zukunft als störend erweisen (wenn nicht sofort).
<style>
tbody td span {display: inline-block;
width: 10em; /* this is the nuisance part, as you'll have to define a particular width, and I assume -without testing- that any percent widths would be relative to the containing `<td>`, not the `<tr>` or `<table>` */
overflow: hidden;
white-space: nowrap; }
</style>
...
<table>
<thead>...</thead>
<tfoot>...</tfoot>
<tbody>
<tr>
<td><span title="some text">some text</span></td> <td><span title="some more text">some more text</span></td> <td><span title="yet more text">yet more text</span></td>
</tr>
</tbody>
</table>
Der Grund für das span
ist, dass, wie von anderen hervorgehoben, a <td>
typischerweise erweitert wird, um den Inhalt aufzunehmen, während a gegeben werden <span>
kann - und erwartet wird, dass es eine festgelegte Breite behält; Das overflow: hidden
soll, kann aber nicht verbergen, was sonst dazu führen würde, dass sich das <td>
ausdehnt.
Ich würde empfehlen, die title
Eigenschaft des Bereichs zu verwenden, um den Text anzuzeigen, der in der visuellen Zelle vorhanden (oder abgeschnitten) ist, damit der Text noch verfügbar ist (und wenn Sie nicht möchten / brauchen, dass Personen ihn sehen, warum dann? in erster Linie denke ich ...).
Wenn Sie eine Breite für das td {...}
td definieren, wird es erweitert (oder möglicherweise verkleinert, aber ich bezweifle es), um seine implizite Breite zu füllen (wie ich es sehe table-width/number-of-cells
), scheint eine angegebene Tabellenbreite nicht zu erstellen das gleiche Problem.
Der Nachteil ist ein zusätzliches Markup, das für die Präsentation verwendet wird.