Spec-Zone.ru › CSS

position-try

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная функция: Это экспериментальная технология.
Перед использованием в производственной среде внимательно проверьте таблицу совместимости с браузерами.

Свойство position-try CSS является сокращённой записью для свойств position-try-order и position-try-fallbacks.

Составные свойства

Это свойство является сокращённой записью для следующих свойств CSS:

  • position-try-order
  • position-try-fallbacks

Синтаксис

/* position-try-fallbacks only */
position-try: normal flip-block;
position-try: top;
position-try: --custom-try-option;
position-try: flip-block flip-inline;
position-try: top, right, bottom;
position-try: --custom-try-option1, --custom-try-option2;
position-try:
  normal flip-block,
  right,
  --custom-try-option;

/* position-try-order and position-try-fallbacks */
position-try: normal none;
position-try:
  most-width --custom-try-option1,
  --custom-try-option2;
position-try:
  most-height flip-block,
  right,
  --custom-try-option;

/* Global values */
position-try: inherit;
position-try: initial;
position-try: revert;
position-try: revert-layer;
position-try: unset;

Значения

См. position-try-order и position-try-fallbacks для описания значений.

Сокращённая запись position-try может задавать значения для position-try-fallbacks, или position-try-order и position-try-fallbacks, в указанном порядке. Если position-try-order опущено, оно устанавливается до значения по умолчанию, которое равно normal, означая, что варианты обратной совместимости «position-try» будут использоваться в том порядке, в котором они указаны в свойстве.

Формальное определение

Начальное значение как для каждого из свойств сокращённой записи:
  • position-try-fallbacks: none
  • position-try-order: normal
Применяется к элементам с абсолютным позиционированием
Наследуется нет
Проценты как для каждого из свойств сокращённой записи:
  • position-try-fallbacks: нет
  • position-try-order: нет
Вычисленное значение как для каждого из свойств сокращённой записи:
  • position-try-fallbacks: как указано
  • position-try-order: как указано
Тип анимации как для каждого из свойств сокращённой записи:
  • position-try-fallbacks: дискретная
  • position-try-order: дискретная

Формальный синтаксис

position-try = 
<'position-try-order'>? <'position-try-fallbacks'>

<position-try-order> =
normal |
<try-size>

<position-try-fallbacks> =
none |
[ [ <dashed-ident> || <try-tactic> ] | <'position-area'> ]#

<try-size> =
most-width |
most-height |
most-block-size |
most-inline-size

<try-tactic> =
flip-block ||
flip-inline ||
flip-start

<position-area> =
none |
<position-area>

<position-area> =
[ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] |
[ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] |
[ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] |
[ start | center | end | span-start | span-end | span-all ]{1,2} |
[ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}

Примеры

Базовое использование position-try

Этот пример демонстрирует эффект position-try.

HTML

HTML содержит два элемента <div>, которые будут являться якорем и элементом, позиционированным относительно якоря.

<div class="anchor">⚓︎</div>

<div class="infobox">
  <p>This is an information box.</p>
</div>

CSS

В CSS якорю задаётся anchor-name, и ему присваивается значение position равное absolute. Мы позиционируем его в верхней половине области просмотра, используя значения top и left:

.anchor {
  anchor-name: --myAnchor;
  position: absolute;
  top: 100px;
  left: 45%;
}

Затем мы включаем пользовательский вариант позиционирования — --custom-bottom — который позиционирует элемент ниже якоря и задаёт соответствующий отступ:

@position-try --custom-bottom {
  top: anchor(bottom);
  bottom: unset;
  margin-top: 10px;
}

Изначально мы позиционируем элемент над якорем, а затем задаём значение position-try для него, которое предоставляет position-try-order равное most-height, и список position-try-fallbacks , который включает только наш пользовательский вариант обратной совместимости:

.infobox {
  position: fixed;
  position-anchor: --myAnchor;

  bottom: anchor(top);
  margin-bottom: 10px;
  justify-self: anchor-center;

  position-try: most-height --custom-bottom;
}

Результат

Элемент отображается под якорем, даже несмотря на то, что он первоначально расположен над ним. Это происходит потому, что ниже якоря больше вертикального пространства, чем над ним. Порядок применения most-height приводит к тому, что вариант обратной совместимости --custom-bottom применяется, размещая позиционированный элемент в позиции, которая обеспечивает контейнеру наибольшую высоту.

Спецификации

Спецификация
CSS позиционирование якоря
# position-try-prop

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
position-try 125 125 Нет 111 Нет 125 Нет 83 Нет 27.0 125

См. также

  • position-area
  • position-try-fallbacks
  • position-try-order
  • Правило @position-try
  • Значение <position-area>
  • Модуль CSS позиционирования якорей
  • Руководство по использованию CSS позиционирования якорей
  • Обработка переполнения: варианты обратной совместимости и условное скрытие

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/position-try

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API