Новый способ оформления пробелов в CSS

Сэм Дэвис Омекара
Sam Davis Omekara
Патрик Броссет
Patrick Brosset

Опубликовано: 11 июня 2025 г.

Попрощайтесь с хаками с границами и псевдоэлементами и поприветствуйте декорирование пробелов CSS.

Команда Microsoft Edge рада сообщить, что CSS-декорации зазоров — новый способ оформления зазоров между элементами в гибких, сетчатых и многоколоночных макетах — теперь доступны для пробной версии для разработчиков в Chrome и Edge 139!

Попробуйте и поделитесь своими отзывами, чтобы помочь сформировать будущее этого API.

Проблема

Стилизация пробелов в компонентах пользовательского интерфейса, таких как календари, карточки или сетки данных, может значительно улучшить читаемость и добавить к общей эстетике. Однако достижение этого эффекта в макетах grid и flexbox традиционно требовало неудобных обходных путей с границами, псевдоэлементами или фоновыми трюками. Эти обходные пути могут быть проблематичными по ряду причин.

  • Неинтуитивно: они вводят структурные зависимости для визуального оформления, что противоречит принципам семантического HTML.
  • Неудобство для пользователей: часто требуются дополнительные элементы DOM, которые могут помешать работе вспомогательных технологий, таких как программы чтения с экрана.
  • Сложность в обслуживании: они требуют сложной логики компоновки и затрудняют единообразное оформление компонентов.
  • Плохо для производительности: эти обходные пути могут добавлять ненужные элементы в DOM, что может привести к проблемам с производительностью.

Хотя веб-платформа уже поддерживает стилизацию пробелов с помощью свойства column-rule , в настоящее время это ограничено только многоколоночными макетами. Веб-разработчики давно просили о единообразном способе стилизации пробелов в других соответствующих типах макетов, таких как grid и flexbox.

Решение: CSS-декорации пробелов

Декорации Gap расширяют свойство column-rule для работы с другими типами макетов, такими как grid и flexbox, и вводят новое свойство row-rule для его дополнения. Это обеспечивает согласованность и новую настраиваемость в том, как оформляются пробелы в разных типах макетов.

Оформление пробелов CSS дает следующие преимущества:

  • Никакого влияния на макет: украшения чисто визуальные. Они не влияют на макет или интервалы, поэтому вы можете использовать их, не опасаясь нарушить существующий дизайн.
  • Синтаксис повтора: подобно CSS Grid, вы можете использовать синтаксис repeat() для создания шаблонов оформления в разных частях контейнера, что позволяет создавать насыщенные и последовательные дизайны с минимальным использованием CSS.
  • Более чистая разметка: нет необходимости в дополнительных элементах или псевдоэлементах — просто задайте стили пробелам напрямую.
  • Возможность настройки: новые свойства CSS, такие как *rule-break , *rule-outset и gap-rule-paint-order предоставляют больше возможностей настройки, выходящих за рамки традиционных правил оформления ширины, стиля и цвета.

Благодаря декорированию пробелов CSS стало проще, чем когда-либо, создавать визуально различимые и удобные в обслуживании макеты страниц.

Декорации Gap в действии

Чтобы поиграться с декорированием пробелов CSS уже сегодня, используйте браузер, который их поддерживает: Edge или Chrome, начиная с версии 139, и переключите флажок «Включить экспериментальные функции веб-платформы», перейдя по адресу edge://flags или chrome://flags .

Интерактивная игровая площадка для разработчиков

Чтобы опробовать различные типы макетов, в которых поддерживаются CSS-декорации пробелов, а также все новые свойства, воспользуйтесь нашей интерактивной игровой площадкой для разработчиков .

Детская площадка.

Меню бургеров

Пользовательский интерфейс для настройки бургера с линиями между секциями.

Демонстрация меню бургера показывает, как использовать свойство column-rule-break: intersection для разрыва оформления промежутков между столбцами на каждом видимом пересечении с промежутками между строками.

В демо также используется column-rule-offset: -15px для регулировки длины украшений, отодвигая их от краев каждого пересечения.

Блокнот

Демонстрация, похожая на страницу разлинованной тетради.

В демо-версии блокнота row-rule-break: none гарантирует, что оформление строк не прерывается на пересечениях — оно непрерывно идет слева направо от контейнера. С другой стороны, column-rule-break: spanning-item гарантирует, что оформление столбцов не будет закрашено за охватывающими элементами — оно начинается и заканчивается на охватывающих элементах, образуя видимое пересечение T.

Свойство row-rule использует функцию repeat() для точного управления тем, как применяются украшения пробелов в разных разделах макета. Это позволяет создать шаблон стилизации, в котором правила строк скрыты в верхнем и нижнем колонтитулах, толще вокруг основного контента и более тонкие в других местах.

Ежедневные новости CSS

Макет в журнальном стиле.

Демонстрация Daily CSS News использует макет в журнальном стиле и определяет CSS-декорации зазоров в нескольких контейнерах grid и flexbox.

Обратите внимание на игру судоку справа, в которой используется сетка 9x9 и повторяющийся рисунок для рисования тонких и толстых линий между строками и столбцами:

.sudoku {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  grid-template-rows: repeat(9, 1fr);
  gap: 6px;
  column-rule-width: repeat(2, 1px) 4px repeat(2, 1px) 4px repeat(2, 1px);
  column-rule-style: solid;
  column-rule-color: var(--secondary);
  row-rule-width: repeat(2, 1px) 4px repeat(2, 1px) 4px repeat(2, 1px);
  row-rule-style: solid;
  row-rule-color: var(--secondary);
}

Звонок для обратной связи

Мы рады, что вы попробуете CSS gap decorations. Мы считаем, что это решает распространенную проблему, и мы хотели бы услышать ваши отзывы об этом, чтобы мы могли улучшить функцию в соответствии с вашими потребностями.

Функция декорирования зазоров CSS все еще реализуется в Chromium. Если вы ее протестируете, имейте в виду, что мы все еще активно работаем над ней, и что вы можете столкнуться со случаями, когда она не будет вести себя так, как ожидалось. Некоторые из текущих ограничений включают анимацию декорирования зазоров и использование очень большого количества дорожек сетки.

Если вы обнаружили ошибку или у вас есть какие-либо мысли по поводу этой функции, поделитесь своим отзывом, открыв новую ошибку Chromium .