Я решил не так, как хотел, поэтому все равно хотел бы узнать, знает ли кто-нибудь, как это сделать.
Однако я нашел подходящую альтернативу, используя следующие атрибуты CSS:
table {
table-layout: fixed;
}
td {
overflow: hidden;
white-space: nowrap;
}
tr:hover td {
overflow: visible;
white-space: normal;
}
Это эффективно устанавливает фиксированный размер таблицы и сохраняет компактность строк в этом размере, пока пользователь не наведет курсор на строку таблицы. Когда это происходит, строка, на которую наводят курсор, расширяется вертикально, чтобы соответствовать содержимому ячейки. Ширина ячейки все еще сохраняется благодаря атрибуту table-layout:fixed
.
Недостатком этого решения является то, что оно не очень хорошо работает, если содержимое вашей ячейки - это что-то кроме текста с пробелами. Текст без пробелов переносится ненадежно, а объекты явно не переносятся вообще.