Используемое мной решение использует точки из @ G-Cyr и @Amanullah Tanweer
HTML
<table class="has-comments">
<thead>
<tr><th>id</th><th>Comments</th><th>Other stuff</th></tr>
</thead>
<tbody>
<tr><td>1</td><td colspan="2"><div contenteditable="true" style="min-height: 1em; width: 100%; border: 1px solid red;"></div></td></tr>
<tr><td>2</td><td colspan="2"><div contenteditable="true" style="min-height: 1em; width: 100%; border: 1px solid red;"></div></td></tr>
</tbody>
</table>
CSS
table.has-comments {
width: 100%;
}
1009 * Javascript *
$("table.has-comments tr:first-child th").each(function(index){
let element = $(this);
let width = element.width();
element.css("width", width + "px");
});
$("table.has-comments").css("table-layout", "fixed");
В результате я разрешаю странице настроить таблицу (ширина 100%), а затем javascript / jQuery исправит ширину столбцов. Наконец, макет таблицы установлен на фиксированный. Я знаю, что это не самое эффективное решение, но моя страница динамически обрабатывается jsp и может изменяться день ото дня.