Кратко
СкопированоДиректива @position объединяет набор стилей для альтернативного расположения элемента под именем, которое можно использовать в качестве значения для свойства position.
Пример
Скопировано
@position-try --bottom { position-area: bottom; margin-top: 20px;}
@position-try --bottom {
position-area: bottom;
margin-top: 20px;
}
Как пишется
СкопированоВ общем виде директива записывается следующим образом:
@position-try --try-option-name { property: value;}
@position-try --try-option-name {
property: value;
}
- так же, как и значение для anchor, должно начинаться с двух символов тире (-).
Внутри директивы @position можно указать не все возможные CSS-свойства, а только те, что влияют на расположение и размер таргет элемента:
inset;margin;- свойства размеров (например,
width,height); - свойства выравнивания самого элемента (например,
justify,- self align);- self position;- anchor position.- area
Как понять
СкопированоИногда в качестве фолбэка не достаточно использовать просто другое значение свойства position. Порой нужно ещё и отступы добавить, или размеры элемента поменять.
Чтобы решить эту проблему была придумана директива @position, которая позволяет объединить под одним именем набор из нескольких CSS-свойств и затем применить их в качестве фолбэка внутри свойства position.
Рассмотрим пример, чтобы лучше понять, как работает директива.
.target { width: 200px; position-area: top; position-try-fallbacks: --bottom;}/* перемещаем элемент вниз, увеличиваем ширину и добавляем отступ*/@position-try --bottom { position-area: bottom; margin-top: 40px; width: 400px;}
.target {
width: 200px;
position-area: top;
position-try-fallbacks: --bottom;
}
/*
перемещаем элемент вниз,
увеличиваем ширину и добавляем отступ
*/
@position-try --bottom {
position-area: bottom;
margin-top: 40px;
width: 400px;
}
Попробуйте переместить якорный элемент сверху вниз и обратно.
- Chrome 125, поддерживается
- Edge 125, поддерживается
- Firefox, не поддерживается
- Safari, не поддерживается