Подтвердить что ты не робот

Усекать текст, чтобы поместить ячейку таблицы без упаковки с помощью css или jquery

Я хочу, чтобы текст в одном из столбцов таблицы не переносился, а просто обрезался, чтобы он соответствовал размеру текущей ячейки таблицы. Я не хочу, чтобы ячейка таблицы меняла размер, так как мне нужно, чтобы таблица была точно 100% шириной контейнера.

Это связано с тем, что таблица с шириной 100% находится внутри позиционированного div с переполнением: auto (это фактически внутри панели jQuery UI.Layout).

Я попробовал как overflow: hidden, так и текст по-прежнему был завернут. Я попробовал white-space: nowrap, но он растянул таблицу шире, чем 100%, и добавил горизонтальную полосу прокрутки.

div.container {
  position: absolute;
  overflow: auto;
  /* user can slide resize bars to change the width & height */
  width: 600px;  
  height: 300px;
}
table { width: 100% }
td.nowrap {
  overflow: hidden;
  white-space: nowrap;
}
<div class="container">
  <table>
    <tr>
      <td>From</td>
      <td>Subject</td>
      <td>Date</td>
    </tr>
    <tr>
      <td>Bob Smith</td>
      <td class="nowrap">
        <strong>Message subject</strong>
        <span>This is a preview of the message body and could be long.</span>
      </td>
      <td>2010-03-30 02:18AM</td>
    </tr>
  </table>
</div>

Есть ли способ использовать CSS, чтобы решить эту проблему? Если бы у меня был фиксированный размер ячейки таблицы, то overflow:hidden урезал бы все, что течет, но я не могу использовать фиксированный размер, так как я хочу, чтобы таблица растягивалась с размером панели UI.Layout.

Если нет, то как я могу решить это с помощью jQuery?

Мой пример использования похож на интерфейс Gmail, где объект электронной почты выделен полужирным шрифтом, и отображается начало тела сообщения, но затем усекается, чтобы соответствовать.

4b9b3361

Ответ 1

Это довольно старый, но вот мой ответ.

table { width: 100%; table-layout: fixed;}

DEMO

Ответ 2

Попробуйте это в теге span внутри td

display: block;
word-break: break-all;

(поздно, но может помочь кому-то другому)

Ответ 4

Вам не нужно указывать размер ячейки в пикселях, вы можете просто использовать проценты:

td.nowrap {
 overflow: hidden;
 white-space: nowrap;
 width: 60%;  /* or whatever */
}