Ширина ячеек зависит от содержимого ячеек, настроек HTML и CSS для ширины, браузера и, возможно, фазы луны. Атрибут colspan
просто указывает, сколько столбцов (следовательно, сколько слотов в сетке таблицы) занимает ячейка.
Если вы видите последнюю ячейку строки 2 как самую широкую, возможно, причина в том, что в ней больше всего содержимого (или для нее есть настройка ширины). Ваш демонстрационный код не демонстрирует такое поведение.
Если вы не хотите, чтобы ширина столбцов соответствовала требованиям к размеру ячеек, установите ширину явно в CSS (или в HTML). Перед этим лучше всего удалить все ненужные сложности из структуры таблицы. Если ваш демонстрационный код отражает всю структуру, то столбцы со 2 по 8 представляют собой ненужное деление, т. Е. Их можно превратить в один столбец. Демонстрация (с плохой шириной пикселя только для определенности):
<table class="floating simpletable" border>
<col width=100><col width=100><col width=100>
<tbody>
<tr><td colspan="4">1st row</td></tr>
<tr><td colspan="2">span 1</td><td>span 2</td><td>span 3 </td></tr>
<tr><td colspan="4">3rd row</td></tr>
<tr><td>span</td><td colspan="3">other span</td></tr>
</tbody>
</table>
Боюсь, что без такой переписки ваша таблица нарушает табличную модель HTML, поскольку в настоящее время нет ни одной ячейки, которая начинается в столбце 3 или столбце 4 или ...