This page is being translated; the original is shown (Русский ).
Промежутки
Классы space-x-* и space-y-* ставятся на родителя и дают каждому
дочернему элементу, кроме первого, внешний отступ со стороны предыдущего
соседа. Берите их, когда между элементами нужен ровный шаг в обычном потоке блоков.
Пример
По строке
space-x-* добавляет отступ в начале строки каждому элементу, кроме
первого. Подпись над образцом — класс на пунктирном родителе.
HTML wrap_text Wrap source lines content_copy Copy
<div class ="flex flex-wrap gap-4 items-end color-on-surface" >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-x-0</code >
<div class ="flex space-x-0 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-x-1/2</code >
<div class ="flex space-x-1/2 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-x-1</code >
<div class ="flex space-x-1 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-x-2</code >
<div class ="flex space-x-2 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-x-4</code >
<div class ="flex space-x-4 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
</div >
По вертикали
space-y-* добавляет отступ сверху каждому элементу, кроме первого.
HTML wrap_text Wrap source lines content_copy Copy
<div class ="flex flex-wrap gap-4 items-start color-on-surface" >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-y-1/4</code >
<div class ="flex flex-col w-e6 space-y-1/4 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-y-1</code >
<div class ="flex flex-col w-e6 space-y-1 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >space-y-3</code >
<div class ="flex flex-col w-e6 space-y-3 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
</div >
Обратный порядок
Когда флекс-контейнер разворачивает порядок (flex-row-reverse,
flex-col-reverse), первый элемент в разметке оказывается последним на
экране, и отступ встаёт не с той стороны. space-x-reverse и
space-y-reverse переносят отступ на другую сторону элемента.
flex-row-reverse space-x-2
flex-row-reverse space-x-2 space-x-reverse
flex-col-reverse space-y-2 space-y-reverse
HTML wrap_text Wrap source lines content_copy Copy
<div class ="flex flex-wrap gap-4 items-start color-on-surface" >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >flex-row-reverse space-x-2</code >
<div class ="flex flex-row-reverse space-x-2 p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >flex-row-reverse space-x-2 space-x-reverse</code >
<div class ="flex flex-row-reverse space-x-2 space-x-reverse p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
<div class ="flex flex-col gap-1 items-start" >
<code class ="text-1/2 color-on-surface-variant" >flex-col-reverse space-y-2 space-y-reverse</code >
<div class ="flex flex-col-reverse w-e6 space-y-2 space-y-reverse p-1 border border-dashed border-outline radius-ui" >
<div class ="p-1 bg-primary-container color-on-primary-container border border-primary radius-ui" >1</div >
<div class ="p-1 bg-secondary-container color-on-secondary-container border border-secondary radius-ui" >2</div >
<div class ="p-1 bg-tertiary-container color-on-tertiary-container border border-tertiary radius-ui" >3</div >
</div >
</div >
</div >
Классы
Класс
CSS
Значения
space-x-0 (.space-x-0 > * + *)
--sf-space--reverse-x: 0; margin-inline-end: calc(var(--sf-space-0) * var(--sf-space--reverse-x)); margin-inline-start: calc(var(--sf-space-0) * (1 - var(--sf-space--reverse-x)))
—
space-y-0 (.space-y-0 > * + *)
--sf-space--reverse-y: 0; margin-top: calc(var(--sf-space-0) * (1 - var(--sf-space--reverse-y))); margin-bottom: calc(var(--sf-space-0) * var(--sf-space--reverse-y))
—
space-x-{значение} (.space-x-{значение} > * + *)
--sf-space--reverse-x: 0; margin-inline-end: calc(var(--sf-space-{значение}) * var(--sf-space--reverse-x)); margin-inline-start: calc(var(--sf-space-{значение}) * (1 - var(--sf-space--reverse-x)))
1/4, 1/3, 1/2, 2, 3, 4, 5, 6, 7, 8
space-y-{значение} (.space-y-{значение} > * + *)
--sf-space--reverse-y: 0; margin-top: calc(var(--sf-space-{значение}) * (1 - var(--sf-space--reverse-y))); margin-bottom: calc(var(--sf-space-{значение}) * var(--sf-space--reverse-y))
1/4, 1/3, 1/2, 2, 3, 4, 5, 6, 7, 8
space-x-1 (.space-x-1 > * + *)
--sf-space--reverse-x: 0; margin-inline-end: calc(var(--sf-space-1) * var(--sf-space--reverse-x)); margin-inline-start: calc(var(--sf-space-1) * (1 - var(--sf-space--reverse-x)))
—
space-y-1 (.space-y-1 > * + *)
--sf-space--reverse-y: 0; margin-top: calc(var(--sf-space-1) * (1 - var(--sf-space--reverse-y))); margin-bottom: calc(var(--sf-space-1) * var(--sf-space--reverse-y))
—
space-x-reverse (.space-x-reverse > * + *)
--sf-space--reverse-x: 1
—
space-y-reverse (.space-y-reverse > * + *)
--sf-space--reverse-y: 1
—
Условия (что это ): ширина экрана — sm:, md:, lg:, xl:, xxl:; состояния — нет. Например: sm:space-x-0.
Классы и переменные собраны из CSS выпуска и обновляются вместе с ним.
Переменные
Классы читают эти токены темы. Изменённый токен меняет все места, где он используется, — классы, компоненты и тему; задайте его в теме проекта, а не на отдельном элементе. Все токены — на странице Все токены .
Переменная
Значение по умолчанию
--sf-space-0
0
--sf-space-1/4
0.25rem; от ширины lg: var(--sf-a4)
--sf-space-1/3
0.5rem; от ширины lg: var(--sf-a8)
--sf-space-1/2
0.5rem; от ширины lg: 0.75rem
--sf-space-1
var(--sf-b2); от ширины lg: var(--sf-b6)
--sf-space-2
var(--sf-b6); от ширины lg: var(--sf-c0)
--sf-space-3
var(--sf-b6); от ширины lg: var(--sf-c2)
--sf-space-4
var(--sf-c2); от ширины lg: var(--sf-c6)
--sf-space-5
var(--sf-c6); от ширины lg: var(--sf-d0)
--sf-space-6
var(--sf-c6); от ширины lg: var(--sf-d2)
--sf-space-7
var(--sf-d0); от ширины lg: var(--sf-d6)
--sf-space-8
var(--sf-d2); от ширины lg: var(--sf-e0)
В CSS косую черту в имени экранируют: var(--sf-space-1\/4).
Применение
Промежутки или gap
Во флекс- и грид-контейнере для того же результата удобнее gap-*: он не
меняет отступы самих элементов и правильно работает при переносе строк.
space-* подходит для обычного потока блоков и для контейнеров, где
отступы нужны только по одной оси.
HTML wrap_text Wrap source lines content_copy Copy
<article class ="space-y-2" >
<h2 >Заголовок</h2 >
<p >Первый абзац</p >
<p >Второй абзац</p >
</article >
Обратный порядок
Класс space-*-reverse ставится вместе с размером на того же родителя:
HTML wrap_text Wrap source lines content_copy Copy
<div class ="flex flex-row-reverse space-x-2 space-x-reverse" >
<button type ="button" >Отмена</button >
<button type ="button" >Сохранить</button >
</div >
Ширина экрана
Шкала совпадает с m-* и p-* (--sf-space-*) и подрастает от ширины
lg. С префиксом ширины промежуток меняется от указанной ширины и шире:
space-y-1 md:space-y-3.
Ограничения
Промежуток — это внешний отступ дочерних элементов. Собственный отступ
ребёнка по той же стороне (m-top-* при space-y-*) с ним конфликтует.
При переносе строк (flex-wrap) первый элемент новой строки тоже получает
отступ в начале строки, и края рядов не выравниваются. Здесь берите gap-*.
Класс размера с префиксом ширины сбрасывает обратный порядок: к
space-x-reverse md:space-x-3 добавьте md:space-x-reverse.
У семейства нет префиксов состояния.
См. также
Предыдущая Внутренний отступ Следующая Интерактивность