CSS Position


positionСвойство используется для указания способа позиционирования элемента.

Пять распространённых значений следующие:

Значение Описание Якорь
static Значение по умолчанию. Элементы располагаются в соответствии с обычным потоком документа и не зависят от top/right/bottom/left. Посмотреть пример
relative Смещается относительно собственного исходного положения и не выходит из потока документа. Посмотреть пример
absolute Позиционируется относительно ближайшего позиционированного элемента-предка (иначе относительно body), и выходит из потока документа. Посмотреть пример
fixed Позиционируется относительно окна браузера; положение не меняется при прокрутке страницы. Посмотреть пример
sticky До прокрутки к указанной позиции ведёт себя как relative; после этого — как fixed. Посмотреть пример

Элементы могут бытьtop、right、bottomиleftНастраивайте положение с помощью этих свойств, но эти свойства вступают в силу только когдаposition(и значение неstatic) задано.


Статическое позиционирование

Значение по умолчанию для HTML-элементов, то есть отсутствие позиционирования, подчиняется обычному объекту потока документа.

На статически позиционированные элементы не влияют top, bottom, left, right.

Пример

div.static { position: static; border: 3px solid #2167AD; }

Попробуйте сами »

Фиксированное позиционирование

Положение элемента фиксировано относительно окна браузера.

Он не будет двигаться, даже если окно прокручивается:

Пример

p.pos_fixed { position:fixed; top:30px; right:5px; }

Попробуйте сами »

Примечание:Фиксированное позиционирование требует объявления !DOCTYPE для поддержки в IE7 и IE8.

Фиксированное позиционирование делает положение элемента не зависящим от потока документа, поэтому он не занимает места.

Элементы с фиксированным позиционированием перекрываются с другими элементами.


Относительное позиционирование

Позиционирование элемента с относительным позиционированием задается относительно его обычного положения.

Пример

h2.pos_left { position:relative; left:-20px; } h2.pos_right { position:relative; left:20px; }

Попробуйте сами »

Перемещение элемента с относительным позиционированием не изменяет место, которое он изначально занимал.

Пример

h2.pos_top { position:relative; top:-50px; }

Попробуйте сами »

Элементы с относительным позиционированием часто используются как содержащие блоки для элементов с абсолютным позиционированием.


Абсолютное позиционирование

Положение элемента с абсолютным позиционированием определяется относительно его ближайшего позиционированного родительского элемента. Если у элемента нет позиционированного родителя, то его положение определяется относительно <html>:

Пример

h2 { position:absolute; left:100px; top:150px; }

Попробуйте сами »

Абсолютное позиционирование делает положение элемента независимым от потока документа, поэтому он не занимает места.

Элементы с абсолютным позиционированием перекрывают другие элементы.


Липкое позиционирование

Буквальное значение английского слова sticky — «stick» или «adhere», поэтому его можно назвать липким позиционированием.

position: sticky;Позиционирование зависит от положения прокрутки пользователя.

Элементы с липким позиционированием зависят от прокрутки пользователя, и когдаposition:relativeиposition:fixed, они переключаются между положениями.

Он ведёт себя так же, какposition:relative;А когда страница прокручивается за пределы целевой области, его поведение похоже наposition:fixed;, он будет зафиксирован в целевом положении.

Позиционирование элемента ведёт себя как relative до пересечения определённого порога и как fixed после этого.

Этот конкретный порог относится к одному из значений top, right, bottom или left. Иными словами, липкое позиционирование вступает в силу только когда указан один из четырёх порогов top, right, bottom или left. В противном случае его поведение такое же, как при relative-позиционировании.

Примечание:Internet Explorer, Edge 15 и более ранние версии IE не поддерживают липкое позиционирование. Safari требует префикс -webkit- (см. пример ниже).

Пример

div.sticky { position: -webkit-sticky; /* Safari */ position: sticky; top: 0; background-color: green; border: 2px solid #4C7EAF; }

Попробуйте сами »

Перекрывающиеся элементы

Позиционирование элементов не учитывается в потоке документа, поэтому они могут перекрывать другие элементы на странице.

Свойство z-index задаёт порядок наложения элемента (какой элемент должен быть спереди или сзади).

Элемент может иметь положительный или отрицательный порядок наложения:

Пример

img { position:absolute; left:0px; top:0px; z-index:-1; }

Попробуйте сами »

Элементы с более высоким порядком наложения всегда находятся перед элементами с более низким порядком наложения.

Примечание:Если два позиционированных элемента перекрываются и z-index не указан, элемент, расположенный последним в HTML-коде, будет отображаться спереди.


Examples

Другие примеры

Обрезка формы элемента

Этот пример демонстрирует, как задать форму элемента. Элемент обрезается по этой форме и отображается.

Как использовать полосы прокрутки для отображения содержимого, выходящего за пределы элемента

Этот пример демонстрирует, как свойство overflow создаёт полосу прокрутки, чтобы вместить содержимое, когда содержимое элемента слишком велико для указанной области.

Как настроить автоматическую обработку переполнения в браузере

Этот пример демонстрирует, как настроить браузер на автоматическую обработку overflow.

Изменение курсора

Этот пример демонстрирует, как изменить курсор.


Все свойства позиционирования CSS

Числа в столбце "CSS" указывают, какая версия CSS (CSS1 или CSS2) определила свойство.

Свойство Описание Значение CSS
bottom Определяет смещение между нижним краем внешнего отступа позиционированного элемента и нижней границей его содержащего блока. auto
length
%
inherit
2
clip Обрезает абсолютно позиционированный элемент shape
auto
inherit
2
cursor Отображает курсор указанного типа. url
auto
crosshair
default
указатель
move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
ожидание
help
2
left Определяет смещение между левым краем внешнего отступа позиционированного элемента и левым краем его содержащего блока. auto
length
%
inherit
2
overflow
Задаёт, что происходит, когда содержимое элемента переполняет его область. auto
hidden
scroll
visible
inherit
2
overflow-y
Задаёт, как обрабатывать содержимое, переполняющее область содержимого элемента по верхнему/нижнему краям auto
hidden
scroll
visible
no-display
no-content
2
overflow-x
Определяет, как обрабатывать содержимое, переполняющее область содержимого элемента по правому/левому краю. auto
hidden
scroll
visible
no-display
no-content
2
position Определяет тип позиционирования элемента. absolute
fixed
relative
static
inherit
2
right Определяет смещение между правым краем внешнего отступа позиционированного элемента и правым краем его содержащего блока. auto
length
%
inherit
2
top Определяет смещение между верхним краем внешнего отступа позиционированного элемента и верхним краем его содержащего блока. auto
length
%
inherit
2
z-index Задаёт порядок наложения элемента. число
auto
inherit
2
Другие расширения