У меня таблица шириной 100%. Если я введу <td>
в него s, они распределятся по столбцам равной длины. Однако я хочу, чтобы все столбцы, кроме последнего, имели как можно меньшую ширину без переноса текста.
Сначала я установил width="1px"
все значения, <td>
кроме последнего (хотя и устарел, но style="width:1px"
не имел никакого эффекта), и это работало нормально, пока в столбце не появились данные из нескольких слов. В этом случае, чтобы сохранить как можно меньшую длину, он обернул мой текст.
Позвольте мне продемонстрировать. Представьте себе эту таблицу:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Независимо от того, что я пытаюсь, я получаю следующее:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
или (хотя я установил style="whitespace-wrap:nowrap"
) это:
---------------------------------------------------------------------------------
| | junk | last
element1 | data | |
| | here | column
---------------------------------------------------------------------------------
| more | other | again,
elem | | | last
| data | stuff | column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Я хочу получить стол, который я представил первым. Как мне этого добиться? (Я бы предпочел придерживаться стандарта и использовать CSS. Мне, честно говоря, все равно, если IE не реализовал часть стандарта)
Дополнительные пояснения: мне нужно, чтобы столбцы были как можно короче, без переноса слов (последний столбец должен быть настолько большим, насколько это необходимо, чтобы ширина таблицы фактически достигла 100%). Если вы знаете LaTeX, мне нужно, чтобы таблицы выглядели в LaTeX естественным образом, когда вы устанавливаете их ширину на 100%.
Примечание: я нашел это, но он по-прежнему дает то же самое, что и в последней таблице.
источник
Ответы:
whitespace-wrap: nowrap
неверный css. Этоwhite-space: nowrap
ты ищешь.источник
По крайней мере, это работает в Google Chrome. ( jsFiddle )
источник
width
подход в соответствии с моими потребностями, так как у меня есть несколько широких столбцов (а не один широкий столбец, поскольку решение выше работает лучше). Я снялwidth: 99%
сexpand
и добавилwidth: 1%
кshrink
и это решение работает хорошо для меня!td:nth-child(1), td:nth-child(2){white-space:nowrap;} td:nth-child(3){width: 99%;}
- На всякий случай, когда появятся какие-то новички. :)col
«sclass
значение атрибуты» к соответствующей таблицеtd
sИспользуя приведенный выше код, последняя ячейка таблицы будет стараться быть как можно больше, и вы предотвратите перенос предыдущих ячеек. Это делает то же самое, что и другие предоставленные ответы, но более эффективно.
источник
width: 1px;
к непоследнему дочернему стилю, чтобы не последние столбцы отображались с минимальной шириной.Немного другая тема, но, возможно, это поможет кому-то, кто сталкивается с этим вопросом, например, мне.
(Я только что видел комментарий Кэмпбельна, который предлагает именно это после написания моего ответа ниже, так что это в основном подробное объяснение его комментария)
У меня была проблема наоборот: я хотел установить для одного столбца таблицы минимально возможную ширину, не разбивая его на пробел (последний столбец в следующем примере), но ширина другого должна быть динамической (включая разрывы строк):
Простое решение:
HTML
CSS
Столбцы с классом
shrink
расширяются только до минимальной ширины, но другие остаются динамическими. Это работает , потому чтоwidth
изtd
автоматически расширяются , чтобы соответствовать всему содержимому.Пример фрагмента
Показать фрагмент кода
источник
Вы можете установить ширину фиксации, поместив
div
тег внутриtd
https://jsfiddle.net/8bf17o1v/
источник
Если вам нужно несколько строк текста в ячейке таблицы.
Не
white-space: nowrap
используйтеwhite-space: pre;
вместо этого.В ячейке таблицы избегайте любого формата кода, такого как новые строки и отступ (пробел), и используйте
<br>
для установки новой строки / строки текста. Как это:Демо на CodePen
источник
Сочетание либо
white-space: nowrap
илиwhite-space: pre
сmin-width: <size>
будет делать эту работу.width: <size>
сам по себе недостаточно, чтобы удерживать стол от сдавливания.источник