Самый чистый способ создать таблицу в css, в которой один столбец не имеет явной ширины (но обертывает содержимое), а другие - с фиксированной шириной?

У меня есть две таблицы, каждая из которых занимает 50% экрана, обе выглядят одинаково. Каждая таблица содержит три столбца. Первый столбец не имеет явной ширины, которая занимает все доступное пространство. Два других столбца имеют фиксированную ширину независимо от размера экрана. Я хочу, чтобы содержимое третьего столбца было обернуто.

Я попытался использовать сетку для построения такой таблицы:

display: grid;
grid-template-columns: auto 80px 60px;

И я использую гибкость в первом столбце, например:

display: flex;
align-items: center;
flex-grow: 1;
flex-wrap: wrap;

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

Мне интересно, если это должно быть достигнуто с помощью гибкости / таблицы / сетки, и как обрабатывать первый столбец (возможно ли это?) с помощью css.

Вот два изображения таблиц на разных экранах (первый экран меньшего размера, второй экран большего размера)

Самый чистый способ создать таблицу в css, в которой один столбец не имеет явной ширины (но обертывает содержимое), а другие - с фиксированной шириной?

Самый чистый способ создать таблицу в css, в которой один столбец не имеет явной ширины (но обертывает содержимое), а другие - с фиксированной шириной?

Может быть, использовать flexgrow?

Blundering Philosopher 14.01.2019 08:33

Я уже использовал flex-grow в первом столбце, он занимает все доступное пространство, но не обертывает содержимое

Andus 14.01.2019 08:38

Вы пробовали добавить word-break: break-word;?

Blundering Philosopher 14.01.2019 09:07

@BlunderingPhilosopher Боже мой, вот и все !! По-видимому, сетка пыталась разорвать линию с пробелом, но мой контент не содержит пробела. Так что здесь ответственность берет на себя перенос слов. Спасибо!

Andus 14.01.2019 09:18

Нет проблем! word-break тоже недавно спас мой проект, ха-ха, это волшебное свойство;)

Blundering Philosopher 14.01.2019 09:25

@BlunderingPhilosopher разве вы не конвертируете свой комментарий в ответ? Так что каждый может легко увидеть хороший подход.

gazdagergo 14.01.2019 10:00

@gazdagergo Я мог бы, но OP уже добавил его в качестве ответа, поэтому он / она может получить очки, ха-ха

Blundering Philosopher 14.01.2019 10:18

@BlunderingPhilosopher Пожалуйста, оставьте ответ ниже, чтобы я мог дать вам очки, которых вы заслуживаете. После этого я удалю свой ответ. :)

Andus 15.01.2019 10:04

Спасибо @Andus :)

Blundering Philosopher 15.01.2019 11:37
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
9
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы рекомендовал использовать word-break, чтобы «установить, появляются ли разрывы строк там, где текст в противном случае переполнял бы его поле содержимого».

Доступно ценности:

  • normal - «Использовать правило разрыва строки по умолчанию».
  • break-all - «Чтобы предотвратить переполнение, между любыми двумя символами следует вставлять разрывы слов (за исключением текста на китайском / японском / корейском языках)».
  • keep-all - «Разрывы слов не должны использоваться для текста на китайском / японском / корейском (CJK). Поведение текста, отличного от CJK, такое же, как для normal».
  • break-word - «Чтобы предотвратить переполнение, обычно неразрывные слова могут быть разорваны в произвольных точках, если в строке нет других приемлемых точек разрыва».

Примечание из документов:

In contrast to word-break: break-word and overflow-wrap: break-word, word-break: break-all will create a break at the exact place where text would otherwise overflow its container (even if putting an entire word on its own line would negate the need for a break).

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