Когда мы привычно прижимаем элемент к краю контейнера, мы пишем top, right, bottom, left. У всех четырёх есть логические эквиваленты — и есть короткий универсальный шорткат inset.
Шорткат inset
Самая частая запись — растянуть элемент по всем четырём сторонам контейнера:
.overlay {
position: fixed;
inset: 0;
}
Это эквивалент top: 0; right: 0; bottom: 0; left: 0. У inset такая же логика записи как у margin/padding: одно значение — ко всем четырём сторонам, два — вертикаль/горизонталь, четыре — верх/право/низ/лево.
.overlay { inset: 0; } /* все стороны = 0 */
.banner { inset: 12px 0; } /* block: 12px, inline: 0 */
.notification { inset: 16px 24px 8px 16px; } /* TRBL */
Парные шорткаты inset-block и inset-inline
Если нужно прижать только по одной оси:
.banner {
position: sticky;
inset-block-start: 60px; /* отступ от начала блока — обычно сверху */
inset-inline: 0; /* растянуть на всю ширину строки */
}
Каждый из inset-block и inset-inline принимает одно или два значения. inset-block: 20px — и block-start, и block-end равны 20 px. inset-block: 0 auto — прибить к началу блока, у конца оставить авто.
Сводная таблица логического позиционирования
| Физическое | Логическое |
|---|---|
| top | inset-block-start |
| bottom | inset-block-end |
| left (для LTR) | inset-inline-start |
| right (для LTR) | inset-inline-end |
| top: 0; bottom: 0; | inset-block: 0; |
| left: 0; right: 0; | inset-inline: 0; |
Практический пример: тултип
Тултип, который появляется «у конца» элемента-якоря: справа в LTR, слева в RTL — без отдельного CSS под арабский интерфейс.
.tooltip {
inset-inline-start: 100%; /* начало тултипа = конец якоря */
inset-block-start: 0;
margin-inline-start: 8px;
inline-size: max-content;
padding-inline: 10px;
padding-block: 6px;
}
В LTR-контейнере тултип появится справа от якоря. Если тот же блок попадёт в dir="rtl", тултип сам разместится слева — потому что «конец строки» в RTL слева. Один и тот же CSS, два зеркальных результата.
С физическим left: 100%; margin-left: 8px для RTL-режима пришлось бы держать отдельный набор правил — и помнить, что они существуют. Логические свойства закрывают это автоматически.