Ответ 1
Есть трюк, который включает настройку некоторых ячеек на очень маленькую ширину, а затем применение свойства white-space: nowrap
:
<table>
<tr>
<td class="min">id</td>
<td class="min">tiny</td>
<td>Fills space</td>
<td>Fills space</td>
<td class="min">123</td>
<td class="min">small</td>
<td>Fills space, wider</td>
<td>Fills space</td>
<td class="min">thin</td>
</tr>
</table>
td {
width: auto;
}
td.min {
width: 1%;
white-space: nowrap;
}
Как вы можете также видеть в приведенной выше nowrap
, nowrap
заставляет ячейку таблицы предотвращать любые разрывы строк и, таким образом, выравнивает ее ширину до минимально возможного.
ПРИМЕЧАНИЕ. Если у вас есть thead
, вы также хотите применить td
stylings к th
.
UPDATE # 1: Эллипсис (...)
Чтобы автоматически свернуть длинный столбец в эллипсы, многоточие text-overflow: ellipsis
то, что вы, скорее всего, ищете:
td.cell-collapse {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
}
Это также требует, чтобы overflow
было hidden
, а также width
или max-width
с фиксированным значением. Добавьте класс cell-collapse
в ячейки, ширина которых вы хотели бы ограничить.
ОБНОВЛЕНИЕ # 2: Обработка бутстрапа
width: 100%;
table
загрузки Bootstrap width: 100%;
что испортит этот подход. Вы можете исправить это с помощью table { width: inherit !important; }
table { width: inherit !important; }
ПРИМЕЧАНИЕ. Таблицы в этом подходе уже имеют полную ширину, поскольку ячейки таблицы уже имеют width: auto;
,
Предыдущее решение Javascript-base удалено, так как чистый CSS-подход теперь работает последовательно во всех современных браузерах. Исходный код по-прежнему доступен на связанном JSfiddle, прокомментированном.