Я попробовал теперь несколько вещей (и осмотрел здесь), и пока ничего не работало. Поэтому я собираюсь спросить.
Что я хочу:
У меня есть следующий простой HTML:
<table>
<tr>
<td class="small">First column with text</td>
<td class="extend">This column should fill the remaining space but should be truncated if the text is too long</td>
<td class="small">Small column</td>
</tr>
</table>
Сама таблица должна быть 100% ширины родительского контейнера.
Я хочу, чтобы первый и последний столбцы (.small
) были такими же большими, какими они должны быть, поэтому контент может вписаться в него без разрыва строки (так что это то, что делает white-space: nowrap
). Средний столбец (.extend
) должен занимать остальную часть пространства (так что таблица будет находиться в пределах 100% ширины его родительского контейнера), а текст внутри .extend
должен быть эллипсирован, прежде чем ему нужно сломаться до строки секунд.
Я подготовил скрипку для этого на http://jsfiddle.net/3bumk/
С этими цветами фона я ожидаю результат вроде:
Есть ли какое-либо решение для этого?
Что я получаю:
Моя проблема в том, что если я могу заставить текст оставаться в одной строке (без разрывов строк), таблица всегда будет переполнять свою родительскую ширину контейнера (и заставить ее прокручивать), прежде чем идея будет иметь многоточие текст в среднем столбце.
Что не является решением (я часто нахожу):
Нет решения установить первый и третий столбцы на "фиксированный" с (процентом или пикселем), поскольку время от времени содержимое будет иметь разную длину. Можно добавить столько div
или span
по мере необходимости (или избавиться от всей таблицы - то, что я пробовал первым, с display
и table
, но я не нашел рабочего решения таким образом либо).
PS: Было бы очень приятно, если бы вы могли отредактировать скрипту в рабочем примере, если вы знаете один: -)
EDIT Я также могу использовать divs вместо таблицы!