Как справляться с коротким и длинным контентом в CSS [часть 2]
![Как справляться с коротким и длинным контентом в CSS [часть 2]](/vite/assets/blog_post-7eTyeLLt.webp)
Содержание
Введение
В этой части мы рассмотрим типовые ситуации, в которых возникает проблема со слишком длинным или слишком коротким контентом.
Примеры
1) Карточка профиля
Простой пример, в котором мы не можем заранее предсказать длину имени. Как же нам тогда поступить?

Можно обрезать текст еще в первой строке, а можно растянуть его на несколько и только потом усечь.
2) Навигационные элементы
Частая проблема, если делать многоязычный сайт. Иногда возникает ситуация, что какое-то слово (в нашем случае это "About") значительно длиннее при раскладке LTR (left-to-right) чем RTL (right-to-left). Тогда мы получаем слишком маленькую интерактивную зону клика, что не есть хорошо.

Для решения данной ситуации достаточно не забывать использовать min-width.

3) Продукты в корзине покупателя
Названия продуктов могут варьироваться от одной до нескольких строк. В примере ниже название продукта слишком близко к кнопке "закрыть" из-за недостаточного размера отступов между ними.

Такое обычно решается добавлением margin к внутреннему блоку с текстом или добавлением padding к блоку-обложке.
.product__name {
margin-right: 1rem;
}
4) Flexbox и длинный контент
Если пример из прошлого пункта показался вам слишком простым, то сейчас вы поймете, что не все вещи бывают такими очевидными. Рассмотрим следующий пример:

HTML:
CSS:
Вот что произойдет, если имя станет слишком длинным:

Казалось бы: почему так? Мы ведь сделали все, о чем говорили в первой части данного топика, но получилось совсем не то, чего мы ожидали.
Все дело в том, что по умолчанию флекс-элементы не могут сжиматься меньше длины своего контента. Для решения этой проблемы нужно установить min-width:
Онлайн-пример (классы немного отличаются, но суть та же): https://codepen.io/kava13/pen/YzpqLoG
Заключение
Надеюсь, что вы узнали о некоторых методах работы с длинным и коротким контентом. Вы сможете подглядывать сюда и находить какие-то похожие аналоги, когда у вас возникнет неявная ситуация в верстке! :)
Александр Ковалец
5 лет назад
1





