Клавиша / esc

@position-try

Объединяем набор фолбэк стилей для позиционирования под одним именем.

Время чтения: меньше 5 мин

Кратко

Скопировано

Директива @position-try объединяет набор стилей для альтернативного расположения элемента под именем, которое можно использовать в качестве значения для свойства position-try-fallbacks.

Пример

Скопировано
        
          
          @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;
}

        
        
          
        
      

--try-option-name так же, как и значение для anchor-name, должно начинаться с двух символов тире (--).

Внутри директивы @position-try можно указать не все возможные CSS-свойства, а только те, что влияют на расположение и размер таргет элемента:

Как понять

Скопировано

Иногда в качестве фолбэка не достаточно использовать просто другое значение свойства position-area. Порой нужно ещё и отступы добавить, или размеры элемента поменять.

Чтобы решить эту проблему была придумана директива @position-try, которая позволяет объединить под одним именем набор из нескольких CSS-свойств и затем применить их в качестве фолбэка внутри свойства position-try-fallbacks.

Рассмотрим пример, чтобы лучше понять, как работает директива.

        
          
          .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, не поддерживается
О Baseline