Я немного поиграл с этим, потому что мне было трудно понять это.
Вы должны установить ширину ячейки (либо th
или td
работал, я установил оба) и установить table-layout
в fixed
. По некоторым причинам ширина ячейки, кажется, остается неизменной, только если ширина таблицы тоже установлена (я думаю, что это глупо, но все же).
Также полезно установить overflow
свойство так, чтобы hidden
любой дополнительный текст не выходил из таблицы.
Вы также должны оставить все границы и размеры для CSS.
Итак, вот что у меня есть:
table {
border: 1px solid black;
table-layout: fixed;
width: 200px;
}
th,
td {
border: 1px solid black;
width: 100px;
overflow: hidden;
}
<table>
<tr>
<th>header 1</th>
<th>header 234567895678657</th>
</tr>
<tr>
<td>data asdfasdfasdfasdfasdf</td>
<td>data 2</td>
</tr>
</table>
Вот это в JSFiddle
У этого парня была похожая проблема: ширина ячейки таблицы - фиксирование ширины, перенос / усечение длинных слов