Возможно, это может сработать, но в какой-то момент в будущем (если не сразу) это может оказаться немного неприятным.
<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>
Обоснование для span
заключается в том, что, как отмечают другие, <td>
обычно расширяется для размещения контента, тогда как <span>
может быть дано - и ожидается, что он будет сохранять - установленную ширину; overflow: hidden
предназначен, но не может скрывать то, что в противном случае вызвало бы расширение <td>
.
Я бы рекомендовал использовать свойство title
диапазона, чтобы показать текст, который присутствует (или обрезан) в визуальной ячейке, чтобы текст оставался доступным (и если вы не хотите / не хотите, чтобы люди видели его). это, тогда зачем это вообще, я думаю ...).
Кроме того, если вы определяете ширину для td {...}
, то значение td будет увеличиваться (или потенциально сокращаться, но я сомневаюсь в этом), чтобы заполнить его подразумеваемую ширину (как мне кажется, это table-width/number-of-cells
), указанная Кажется, ширина таблицы не создает такой же проблемы.
Недостатком является дополнительная разметка, используемая для презентации.