2008-11-18 2 views
203

Кто-нибудь знает, как я могу предотвратить перенос текста в ячейке таблицы? Это для заголовка таблицы, и заголовок намного длиннее данных под ним, но мне нужно, чтобы он отображался только на одной строке. Это нормально, если колонка очень широкая.Как предотвратить текст в ячейке таблицы от упаковки

HTML-мой (упрощенный) таблицы выглядит следующим образом:

<table> 
    <thead> 
    <tr> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
     <th> 
     <div>Really long column heading</div> 
     </th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
     <td> 
     <div>data</div> 
     </td> 
    </tr> 
    </tbody> 
</table> 

Сам заголовок заворачивают в DIV внутри тега th по причинам, относящимся к JavaScript на этой странице.

Стол выходит с заголовками, обертывающими на несколько строк. Это происходит, только когда таблица достаточно широкая, поскольку браузер пытается избежать горизонтальной прокрутки. В моем случае, однако, я хочу горизонтальную прокрутку.

Любые идеи?

ответ

357

Посмотрите на недвижимость white-space, которая используется следующим образом:

th { 
    white-space: nowrap; 
} 

Это заставит содержимое <th> отобразить на одной строке.

От связанной страницы, вот различные варианты для white-space:

нормальный
Это значение направляет ПАгенту разрушаться последовательности белого пространства, и разрыв строки, сколько необходимо для заполнения коробки строки.

предварительно
Это значение предотвращает пользовательские агенты от разрушения последовательностей белого пространства. Линии только сломаны при сохранении символов новой строки.

Nowrap
Это значение сворачивает пробельные как для «нормальной», но подавляет разрывы строк в тексте.

предварительно обертка
Это значение предотвращает пользовательские агенты от разрушения последовательностей белого пространства. Строки разбиты на сохраненные символы новой строки и, если необходимо, заполнять линейные поля.

предварительно линии
Это значение направляет пользовательские агенты разрушаться последовательности пустого пространства. Строки разбиты на сохраненные символы новой строки и, если необходимо, заполнять линейные поля.

+8

не работает для поля ввода и кнопки в той же ячейке. случайно помещается ниже. – Doomsknight 2012-01-09 16:01:43

+15

Элемент `Table` должен иметь` table-layout: fixed; `, чтобы это работало. – daniloquio 2012-08-14 20:58:29

18

Есть по крайней мере два способа сделать это:

Использования Nowrap атрибутов внутри "ТД" метка:

<th nowrap="nowrap">Really long column heading</th> 

Используйте неразрывное пространство между вашими словами:

<th>Really&nbsp;long&nbsp;column&nbsp;heading</th> 
+0

Nowrap идеально – NotMe 2008-11-18 21:44:30

+6

Заметим, что `nowrap` устарела. https://www.w3.org/TR/html401/struct/tables.html#h-11.2.6. Вместо этого используйте таблицы стилей. – wisbucky 2016-04-06 22:13:29

53
<th nowrap="nowrap"> 

или

<th style="white-space:nowrap;"> 

или

<th class="nowrap"> 
<style type="text/css"> 
.nowrap { white-space: nowrap; } 
</style> 
Смежные вопросы