CSS Макет. Свойство position

Курс по основам CSS. W3Schools на русском языке. Уроки для начинающих


Свойство position определяет тип метода позиционирования, используемого для элемента (статический, относительный, фиксированный, абсолютный или прикрепленный).


Свойство position

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

Есть пять разных значений position (позиции):

Затем элементы располагаются с использованием свойств top, bottom, left и right. Однако эти свойства не будут работать, если сначала не установлено свойство position. Они также работают по-разному в зависимости от значения position.


position: static;

HTML-элементы по умолчанию расположены статически.

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

Элемент со значением position: static; не позиционируется каким-либо особым образом; он всегда располагается в соответствии с обычным потоком страницы:

Этот <div> элемент имеет position: static;

Вот CSS, который используется:

Пример

div.static {
  position: static;
  border: 3px solid #73AD21;
}
Попробуйте сами »

position: relative;

Элемент со значением position: relative; расположен относительно своего нормального положения.

Установка свойств top, right, bottom и left относительно позиционированного элемента приведет к его отклонению от его нормального положения. Другое содержимое не будет откорректировано, чтобы вписаться в любой пробел, оставленный элементом.

Этот <div> элемент имеет position: relative;

Вот CSS, который используется:

Пример

div.relative {
  position: relative;
  left: 30px;
  border: 3px solid #73AD21;
}
Попробуйте сами »

В данном примере элемент <div> имеет отступ слева 30px, в результате чего он сдвигается влево на 30 пикселей, при этом справа выходит на другое содержимое страницы.


position: fixed;

Элемент со значением position: fixed; расположен относительно окна просмотра, что означает, что он всегда остаётся на том же месте, даже если страница прокручивается. Свойства top, right, bottom и left используются для позиционирования элемента.

Фиксированный элемент не оставляет пробела на странице, где он обычно находился бы.

Обратите внимание на фиксированный элемент в правом нижнем углу страницы. Вот CSS, который используется:

Пример

div.fixed {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 300px;
  border: 3px solid #73AD21;
}
Попробуйте сами »
Этот <div> элемент имеет position: fixed;

position: absolute;

Элемент со значением position: absolute; позиционируется относительно ближайшего расположенного предшественника (вместо позиционированного относительно окна просмотра, как фиксированный).

Однако, если элемент с абсолютным позиционированием не имеет позиционированных предшественников, он использует тело документа и перемещается вместе с прокруткой страницы.

Примечание: «Позиционируемый» элемент - это тот, чья позиция - где угодно static.

Вот простой пример:

Этот <div> элемент имеет position: relative;
Этот <div> элемент имеет position: absolute;

Вот CSS, который используется:

Пример

div.relative {
  position: relative;
  width: 400px;
  height: 200px;
  border: 3px solid #73AD21;
}

div.absolute {
  position: absolute;
  top: 80px;
  right: 0;
  width: 200px;
  height: 100px;
  border: 3px solid #73AD21;
}
Попробуйте сами »

position: sticky;

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

Прикреплённый элемент переключается между relative и fixed, в зависимости от положения прокрутки. Он позиционируется относительно до тех пор, пока в окне просмотра не будет достигнута заданная позиция смещения - тогда он «залипнет» на месте (например position:fixed).

Примечание: Internet Explorer, Edge 15 и более ранние версии не поддерживают sticky позиционирование. Safari требует префикса -webkit- (см. пример ниже). Также необходимо указать хотя бы одно из значений top, right, bottom или left для работы sticky позиционирования.

В этом примере sticky элемент придерживается верхней части страницы (top: 0), когда вы достигнете указанной позиции с помощью прокрутки страницы.

Пример

div.sticky {
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 0;
  background-color: green;
  border: 2px solid #4CAF50;
}
Попробуйте сами »

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

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

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

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

Это заголовок

W3.CSS

Поскольку изображение имеет z-index -1, оно будет помещено за текстом.

Пример

img {
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: -1;
}
Попробуйте сами »

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

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


Позиционирование текста в изображении

Как разместить текст поверх изображения:

Пример

Cinque Terre
Bottom Left
Top Left
Top Right
Bottom Right
Centered

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

Top Left » Top Right » Bottom Left » Bottom Right » Centered »

Больше примеров

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

Примеры



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

Свойство Описание
bottom Устанавливает нижний край поля для позиционированного блока (отступ снизу)
clip Закрепляет абсолютно позиционированный элемент
left Устанавливает край левого поля для позиционированного блока (отступ слева)
position Определяет тип позиционирования для элемента
right Устанавливает правый край поля для позиционированного блока (отступ справа)
top Устанавливает верхний край поля для позиционированного блока (отступ сверху)
z-index Устанавливает порядок стека элемента