CSS и вёрстка

Flex 1 1 0 css что это

📅 ⏱ 05:58 ⏳ 1 мин 💬 0

Flex 1 1 0 css что это: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем тему: ['

Коротко: flex: 1 1 0 — это сокращение трёх свойств: flex-grow: 1 (растягиваться), flex-shrink: 1 (сжиматься), flex-basis: 0 (базовая ширина ноль). Вместе это означает: «элемент делит место поровну с соседями, у которых та же настройка». Именно так делают равные колонки.

Кому и зачемЗапись flex: 1 1 0 встречается в чужом коде и в документации. Без понимания трёх составляющих непонятно, почему элементы получаются одинаковыми или, наоборот, разной ширины.

Три числа: что означает каждое

Значение Свойство Смысл
первое — 1 flex-grow как сильно растягиваться
второе — 1 flex-shrink как сильно сжиматься
третье — 0 flex-basis базовая ширина (0 — по содержимому)

Вкладки: варианты flex-записи




CSS
.col { flex: 1 1 0; }

Базовая ширина ноль, обе колонки растут одинаково — получаются строго равные части. Идеально для одинаковых колонок и «резинки» в строке.

CSS
.col { flex: 1 1 auto; }

Базовая ширина — по содержимому. Колонки растянутся, но ширина зависит от контента: одна с длинным текстом будет шире.

CSS
.col { flex: 1; }   /* = 1 1 0 */

Короткая запись. Современные браузеры понимают её как 1 1 0 (значение basis — 0%).

CSS
.sidebar { flex: none; width: 280px; }

«Не растягиваться и не сжиматься» — фиксированный блок. Удобно для сайдбара с заданной шириной.

Почему именно 0 в концеflex-basis: 0 обнуляет «стартовую» ширину. Тогда всё свободное место делится поровну, независимо от количества текста в колонке. Поэтому flex: 1 1 0 даёт ровные колонки.

Практика: равные колонки

  1. Контейнеру задайте display: flex; gap: 16px;.
  2. Каждой колонке — flex: 1 1 0;.
  3. Проверьте: колонки одинаковой ширины независимо от текста.
  4. Если нужна колонка шире — увеличьте её flex-grow (например, 2 1 0).

Частые ошибки: причина → решение

Симптом Причина Решение
Колонки разной ширины использован auto в basis использовать flex: 1 1 0
Элемент схлопнулся flex-shrink: 1 и мало места задать min-width или flex: none
Ряд переносится нет flex-wrap или мало ширины flex-wrap: wrap
Длинный текст «рвёт» колонку нет переноса min-width: 0 + overflow-wrap

Проверьте себя

Чек-лист




Что означает flex-basis: 0?




Чем flex: 1 1 0 отличается от flex: 1 1 auto?




Вопросы и ответы

Это короткая запись, и браузеры понимают её как 1 1 0%. Для читаемости можно писать полную форму.

Увеличьте её flex-grow: например, flex: 2 1 0 напротив flex: 1 1 0 у соседей.

Запрещает элементу сжиматься меньше его базового размера. Удобно для иконок и кнопок в строке.

Flex-basis «сильнее» width в кладке: он задаёт основу до распределения. Если использую width — держите basis в auto.

Итоги

  • flex: 1 1 0 = растягиваться, сжиматься, база ноль.
  • Для равных колонок это лучший вариант.
  • auto в basis учитывает содержимое, 0 — делит поровну.
  • flex: none — фиксированный элемент.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость