Как автоматически изменить размер ячейки HTML-таблицы под размер текста?
У меня есть таблица с 2 строками и переменным количеством столбцов. Я установил ширину столбцов в 100%, чтобы первое содержимое в представлении поместилось. Однако, если я изменяю содержимое динамически, размеры столбцов HTML-таблицы не увеличиваются и не уменьшаются автоматически. Как решить эту проблему?
3 ответ(ов)
Если вы хотите, чтобы ячейки автоматически изменяли размер в зависимости от содержания, вам не нужно задавать ширину для таблицы, строк или ячеек.
Если вы не хотите, чтобы текст переносился на следующую строку, примените к ячейкам стиль CSS white-space: nowrap
.
Вы можете попробовать следующий код для достижения желаемого результата:
HTML:
<table>
<tr>
<td class="shrink">element1</td>
<td class="shrink">data</td>
<td class="shrink">junk here</td>
<td class="expand">последний столбец</td>
</tr>
<tr>
<td class="shrink">elem</td>
<td class="shrink">more data</td>
<td class="shrink">другие вещи</td>
<td class="expand">снова, последний столбец</td>
</tr>
<tr>
<td class="shrink">more</td>
<td class="shrink">of</td>
<td class="shrink">these</td>
<td class="expand">строки</td>
</tr>
</table>
CSS:
table {
border: 1px solid green;
border-collapse: collapse;
width: 100%;
}
table td {
border: 1px solid green;
}
table td.shrink {
white-space: nowrap;
}
table td.expand {
width: 99%;
}
Этот код создаст таблицу, в которой первые три столбца будут сжиматься по своему содержимому, а последний столбец будет занимать оставшееся пространство.
Я тоже сталкивался с этой проблемой и вот как я ее решил: добавьте table-layout: auto;
к элементу <table>
.
Как расположить div внизу своего контейнера?
Установить фиксированную ширину столбца таблицы независимо от количества текста в ячейках?
Как сделать перенос строки с помощью CSS, не используя <br />?
Стоит ли использовать единицы px или rem в CSS? [закрыто]
Как изменить цвет заливки SVG-изображения при использовании его в качестве фонового изображения?