Кратко
СкопированоСвойство position перечисляет альтернативные варианты расположения таргет элемента.
Пример
Скопировано
.target { position-try-fallbacks: flip-block;}
.target {
position-try-fallbacks: flip-block;
}
Как пишется
СкопированоЕсть несколько вариантов значений и подходов для работы с position:
none— список альтернативных расположений остается пустым. Значение по умолчанию;<try– применяет заранее определенные стратегии альтернативного расположения элемента. Существует три стратегии:- tactic> flip– элемент будет менять свое расположение в блочном направлении;- block flip– элемент будет менять свое расположение в строчном направлении;- inline flip– элемент будет менять ось расположения: если он находился в начале одной оси, то он переместится в начало противоположной оси; если элемент находился в конце одной оси, то он переместится в конец противоположной оси;- start
<position– альтернативное расположение, заданное с помощью значения для свойства- area> position;- area <position– имя альтернативного расположения, заданного с помощью директивы- try - option> @position.- try
Все вышеперечисленные варианты значений (кроме none) можно комбинировать между собой и указывать несколько вариантов через запятую.
.target { position-try-fallbacks: flip-block, bottom span-right, flip-inline, --left;}
.target {
position-try-fallbacks: flip-block, bottom span-right, flip-inline, --left;
}
Как понять
СкопированоДопустим, с помощью свойства position мы расположили таргет элемент сверху по центру относительно якоря.
В большинстве случаев этого будет достаточно, чтобы вёрстка выглядела хорошо, однако, не всегда. Например, если начать перемещать якорный элемент к верху экрана, то в какой-то момент таргет элемент скроется за пределами вьюпорта. А хотелось бы, чтобы он мог адаптироваться и переместиться вниз, как на картинке ниже.

Как раз в этом нам и может помочь свойство position. Оно предоставляет список альтернативных вариантов расположения таргет элемента, которые браузер может попробовать применить, если таргет элемент перестал помещаться целиком в своем начальном положении.
<try-tactic>
СкопированоРассмотрим на примерах работу <try значений.
Начнём с flip.
.target { position-area: top center; position-try-fallbacks: flip-block;}
.target {
position-area: top center;
position-try-fallbacks: flip-block;
}
Попробуйте переместить якорный элемент сверху вниз, потом снизу вверх.
При использовании flip значения таргет элемент будет менять свое местоположение в блочном направлении (то есть по вертикали для системы письменности справа налево).

Далее идёт flip.
.target { position-area: right center; position-try-fallbacks: flip-inline;}
.target {
position-area: right center;
position-try-fallbacks: flip-inline;
}
При использовании flip значения таргет элемент будет менять своё местоположение в строчном направлении (то есть по горизонтали для системы письменности справа налево).

Последняя стратегия называется flip.
.target { position-area: top center; position-try-fallbacks: flip-start;}
.target {
position-area: top center;
position-try-fallbacks: flip-start;
}
.target { position-area: bottom center; position-try-fallbacks: flip-start;}
.target {
position-area: bottom center;
position-try-fallbacks: flip-start;
}
При использовании flip значения таргет элемент будет менять ось расположения: если он находился в начале одной оси, то он переместится в начало противоположной оси; если элемент находился в конце одной оси, то он переместится в конец противоположной оси.

<position-area>
СкопированоЕсли <try подход не устраивает, можно явно указать значения position в качестве альтернативных вариантов расположения.
.target { position-area: top span-left; position-try-fallbacks: bottom span-right;}
.target {
position-area: top span-left;
position-try-fallbacks: bottom span-right;
}
- Chrome 125, поддерживается
- Edge 125, поддерживается
- Firefox, не поддерживается
- Safari, не поддерживается