TGViewer
<divelopers> <divelopers> @alexnozer_dev · 1.18K subscribers
Post #240 1.07K
flex-wrap: balance

Уна Кравец у себя в социальных сетях поделилась анонсом свойства flex-wrap: balance, которое уже доступно в Chrome Canary. Название и механика работы похожа на свойство text-wrap: balance, которое год назад появилось во всех браузерах. Оно меняет алгоритм переноса текста так, чтобы строки были примерно одинаковой длины или сбалансированными, откуда и название.

text-wrap: balance решает проблему подвисших слов в заголовках, когда в первой строке много текста, а во второй одно или пара слов. Идея сделать такое же свойство для flexbox обсуждается с 2018 года. Сейчас элементы flex-контейнера переносятся по одному, если им не хватает места. Они ведут себя, по сути, как слова в обычных блоках с текстом.

Свойство flex-wrap: balance разрешает перенос элементов (по умолчанию flex-wrap: nowrap не разрешает), и включает алгоритм балансировки (в отличие от flex-wrap: wrap). На новую строку будет переноситься не только тот элемент, которому не хватило места в строке, а такое количество элементов, при котором общая ширина каждой строки будет примерно одинаковой.

У text-wrap: balance есть ограничение: балансировка действует для текста, у которого не более 6 строк в Chrome и не более 10 строк в Firefox. Ограничение действует из-за особенностей переноса текста и алгоритма балансировки. При большом количестве строк это может негативно сказываться на производительности. Будут ли подобные ограничения у flex-wrap: balance — не известно.

В целом это небольшое, но приятное улучшение для flexbox. И, что важно, улучшение прогрессивное. Если браузер не поддерживает flex-wrap: balance, страница не развалится. Главное дополнительно указать flex-wrap: wrap, чтобы браузер откатился к стандартному механизму переноса.

#css
Bluesky Social Una Kravets (@una.im) Introducing 🤯 flex-wrap: balance 🤯 Would you use this? ⚠️ Not a real feature yet, just something one of our engineers has been working on. (You can try it out in the latest Chrome Canary with the experimental web platform features flag though!)
  • 👍 15
  • 🔥 6
  • ❤ 2
  • 😍 2
  • 🤯 1
More from @alexnozer_dev
  1. Sep 23, 2026Images Preview На некоторых сайтах, где надо показывать изображения в высоком качестве, дл…
  2. Sep 21, 2026Реализация пользовательских атрибутов Под конец прошлого года я рассказывал об API пользов…
  3. Sep 14, 2026Подклассы Event вместо CustomEvent Многие библиотеки предоставляют систему событий в качес…
  4. Sep 11, 2026Эволюция стилей в темах Shopify Адам Ватан на днях поделился новостью, что Shopify выкупил…
  5. Sep 9, 2026Persistent Widgets Многие сайты не должны быть SPA. Но иногда эта архитектура продиктована…
  6. Sep 7, 2026Processing Instructions и маркеры В DOM всё представлено в виде узлов (Node) разных типов.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →