Проблема заключается в том, что вы используете ширину в процентах
<th style="width: 15%">Points</th>
Поскольку ваш экран имеет другой размер, скидка 7% будет иметь другое абсолютное значение. Поэтому вы должны изменить его на некоторое фиксированное значение, чтобы оно оставалось одинаковым для всех размеров экрана.
<th style="width: 10rem">Points</th>
обратите внимание, что я случайно выбрал 10rem здесь, и вы должны экспериментировать.
Это потому, что ширина в процентах основывается каскадно вниз Сама ширина таблицы основана на ширине экрана, и, следовательно, ширина ячейки основана на ширине экрана.
Вы также можете задать ей минимальную ширину чего-либо, чтобы она была зафиксирована, скажем, на 10rem, но может расти до 15% ширины таблицы после этого.
table {
width: 100%;
}
th {
min-width: 10rem;
width: 15%;
}
td, th {
border: 1px solid;
}
<table>
<tbody>
<tr>
<th>first</th>
<td>a</td>
<td>b</td>
<td>c</td>
<td>b</td>
<td>d</td>
</tr>
<tr>
<th>second</th>
<td>a</td>
<td>b</td>
<td>c</td>
<td>b</td>
<td>d</td>
</tr>
<tr>
<th>third</th>
<td>a</td>
<td>b</td>
<td>c</td>
<td>b</td>
<td>d</td>
</tr>
</tbody>
</table>