Кратко
СкопированоСвойство position предоставляет удобную концепцию на основе сетки для позиционирования относительного якорного элемента.
Пример
Скопировано
.target { position-area: top;}
.target {
position-area: top;
}
Как пишется
СкопированоСвойство position принимает в себя значение из двух ключевых слов: одно для расположения по горизонтальной оси, второе по вертикальной.
Например, запись
.target { position-area: top center;}
.target {
position-area: top center;
}
расположит элемент сверху по центру:
Если нужно чтобы элемент мог занимать площадь двух ячеек нужно использовать span значение. Например, span.
.target { position-area: top span-left;}
.target {
position-area: top span-left;
}
А если хочется растянуть элемент на все три ячейки – в этом поможет значение span.
.target { position-area: top span-all;}
.target {
position-area: top span-all;
}
При этом span можно опустить, так как оно применяется по умолчанию.
.target { position-area: top;}
.target {
position-area: top;
}
Важно помнить, что элемент растянется на все три ячейки, только если у него будет достаточно для этого ширины. Значение span само по себе не увеличит ширину таргет элемента.
Как понять
СкопированоОбычно нам нужно разместить таргет элемент относительно якоря в "стандартных" позициях: сверху по центру, сверху слева и т.д.
Для этого можно использовать функцию anchor.
Например, вот так можем расположить элемент сверху слева относительно якоря:
.target { /* располагаем элемент сверху слева относительно якоря */ bottom: anchor(top); left: anchor(right);}
.target {
/* располагаем элемент сверху слева относительно якоря */
bottom: anchor(top);
left: anchor(right);
}
Если нам нужно расположить элемент по центру одной из осей, можем использовать связку из функции anchor и значения anchor для свойств justify, align:
.target { /* располагаем элемент сверху по центру относительно якоря */ bottom: anchor(top); justify-self: anchor-center;}
.target {
/* располагаем элемент сверху по центру относительно якоря */
bottom: anchor(top);
justify-self: anchor-center;
}
В обоих случаях нам потребовалось использовать два свойства, чтобы расположить элемент в нужном месте. Не очень удобно. Чтобы решить эту проблему было создано свойство position. С помощью него можно расположить таргет элемент относительно якоря используя концепцию сетки.

Если визуально отобразить границы вьюпорта синим бордером, а затем провести воображаемые линии сверху, снизу, справа и слева от якорного элемента, получим сетку размера 3x3. Чтобы расположить элемент в определенной ячейке, нужно к ней обратиться с помощью ключевых слов top, bottom, right, left, center или их логических эквивалентов (start, center, end).
Лучше понять, какое значение прописать для свойства, чтобы расположить его в нужной месте поможет интерективная демка ниже. В ней можно кликать на любую из ячеек, чтобы выбрать одну ячейку. Также зажать и тянуть, чтобы выбрать несколько ячеек.
- Chrome 125, поддерживается
- Edge 125, поддерживается
- Firefox, не поддерживается
- Safari, не поддерживается