Как предотвратить перенос текста в ячейке таблицы

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

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 на странице.

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

Есть идеи?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
311
0
258 219
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Используйте атрибут nowrap внутри тега "td":

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

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

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

Обратите внимание, что nowrap устарел. w3.org/TR/html401/struct/tables.html#h-11.2.6. Вместо этого используйте таблицы стилей.

wisbucky 07.04.2016 01:13
Ответ принят как подходящий

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

th {
    white-space: nowrap;
}

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

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

normal
This value directs user agents to collapse sequences of white space, and break lines as necessary to fill line boxes.

pre
This value prevents user agents from collapsing sequences of white space. Lines are only broken at preserved newline characters.

nowrap
This value collapses white space as for 'normal', but suppresses line breaks within text.

pre-wrap
This value prevents user agents from collapsing sequences of white space. Lines are broken at preserved newline characters, and as necessary to fill line boxes.

pre-line
This value directs user agents to collapse sequences of white space. Lines are broken at preserved newline characters, and as necessary to fill line boxes.

не работает для поля ввода и кнопки в одной ячейке. случайным образом размещен ниже.

IAmGroot 09.01.2012 20:01

Для того, чтобы это работало, элемент Table должен иметь table-layout:fixed;.

daniloquio 15.08.2012 00:58

@Doomsknight Вы нашли способ добиться этого с помощью поля ввода и другого элемента в той же ячейке?

loveNoHate 03.01.2014 18:54

белое пространство: предварительно; было то, что мне было нужно, так как -28.04 заключался между - и 28.04

Brent 08.04.2014 20:46

@Doomsknight У меня была такая же проблема с флажком, и я решил ее, обновив CSS с помощью input { display: inline; }

Programster 12.05.2014 15:17

он портит другие ячейки, требует дальнейшего исправления, я считаю, что это неполное решение, поскольку некоторые другие ячейки начинают перезаписывать

sairfan 19.06.2019 20:55
<th nowrap = "nowrap">

или же

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

или же

<th class = "nowrap">
<style type = "text/css">
.nowrap { white-space: nowrap; }
</style>

Обратите внимание, что nowrap устарел. w3.org/TR/html401/struct/tables.html#h-11.2.6. Вместо этого используйте таблицы стилей.

wisbucky 07.04.2016 01:13
Примечание. при неосторожном использовании этот атрибут может привести к чрезмерно широким ячейкам.
ArifMustafa 02.10.2018 21:09

@wisbucky Как «использовать таблицы стилей»?

rogerdpack 30.04.2020 09:35

Я пришел к этому вопросу, чтобы предотвратить перенос текста через дефис.

Вот как я это сделал:

<td><nobr>Table Text</nobr></td>

Справка:

Как предотвратить перенос строки через дефис во всех браузерах

Стоит отметить, что тег nobr нестандартен, как указано в принятом ответе, связанном в этом ответе: stackoverflow.com/a/8755071/4257

pkaeding 09.03.2015 05:08

Совершенно верно. Ваша точка зрения принята хорошо. Я прочитал все эти комментарии, отметил опыт соответствующих комментаторов и высказал свое мнение. Дефис немного сложен. (Примечание: вопрос, который вы указали в своем комментарии, совпадает с тем, который я указал в своем ответе)

cssyphus 09.03.2015 05:12

Да, это должен был быть тот же вопрос. Я просто хотел убедиться, что здесь было опубликовано предостережение на случай, если кто-то найдет этот ответ в будущем, и не удосужился прочитать связанную ссылку.

pkaeding 09.03.2015 05:14

Для использования с пользовательским интерфейсом React / Material

Если вам интересно, как это работает для UI материала при сборке в React, вот как вы добавляете это в свой компонент <TableHead>:

<TableHead style = {{ whiteSpace: 'nowrap'}}>

Другие вопросы по теме