Eu brinquei um pouco porque tinha dificuldade em descobrir.
Você precisa definir a largura da célula ( th
ou td
funcionou, eu defino os dois) E defina table-layout
como fixed
. Por alguma razão, a largura da célula parece permanecer fixa apenas se a largura da tabela também estiver definida (acho isso tolo, mas o que for).
Além disso, é útil definir a overflow
propriedade hidden
para impedir que qualquer texto extra saia da tabela.
Você também deve deixar todos os limites e dimensionamentos para CSS.
Ok, então aqui está o que eu tenho:
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>
Aqui está no JSFiddle
Esse cara teve um problema semelhante: larguras de células da tabela - fixando largura, quebrando / truncando palavras longas