Урок 10

День 10 | Позиционирование элементов

50 мин

Позиционирование элементов

Свойство position определяет, как элемент позиционируется на странице. Это очень важная тема для создания сложных макетов.

position: static (по умолчанию)

Это значение по умолчанию. Элемент располагается в обычном потоке документа. Свойства top, right, bottom, left и z-index не работают.

.element {
  position: static; /* Можно не указывать, это по умолчанию */
}

position: relative

Элемент позиционируется относительно своего обычного положения. Можно сдвинуть элемент с помощью top, right, bottom, left.

Важно: Элемент сдвигается, но место, которое он занимал, остаётся пустым. Другие элементы не "подтягиваются".

position: absolute

Элемент позиционируется относительно ближайшего родителя с position: relative (или absolute, fixed). Если такого родителя нет — относительно <body>.

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

Когда использовать:

  • Всплывающие подсказки
  • Иконки на элементах
  • Overlay (затемняющий слой)
  • Сложные макеты

position: fixed

Элемент позиционируется относительно окна браузера (viewport). При скролле остаётся на месте.

Когда использовать:

  • Фиксированная навигация (sticky header)
  • Кнопка "Наверх"
  • Модальные окна
  • Боковые панели

position: sticky

Гибрид между relative и fixed. Элемент ведёт себя как relative, пока не достигнет указанной позиции, затем "прилипает" как fixed.

Когда использовать:

  • Липкая навигация (sticky header)
  • Заголовки таблиц при скролле
  • Боковые меню

z-index (порядок наложения)

z-index определяет порядок наложения элементов друг на друга. Работает только с элементами, у которых position не static.

Чем больше значение, тем выше элемент:

.element1 {
  position: relative;
  z-index: 1;
}

.element2 {
  position: relative;
  z-index: 10; /* Будет поверх element1 */
}

.element3 {
  position: relative;
  z-index: 100; /* Будет поверх всех */
}

Практические примеры

Пример 1: Overlay (затемняющий слой)

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
}

.modal-content {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1001;
}

Пример 2: Иконка на элементе

.badge {
  position: relative;
}

.badge::after {
  content: "NEW";
  position: absolute;
  top: -10px;
  right: -10px;
  background: red;
  color: white;
  padding: 5px 10px;
  border-radius: 12px;
  font-size: 12px;
}

Практическое задание

  1. Создайте sticky header (липкую шапку)
  2. Создайте модальное окно с overlay
  3. Добавьте иконку "NEW" на карточку с помощью absolute
  4. Поэкспериментируйте с z-index
  5. Создайте кнопку "Наверх" с position: fixed

Что дальше?

Отлично! Теперь вы знаете позиционирование. В следующем уроке мы начнём верстать реальные блоки, используя изученные техники.

Мы используем файлы cookie для улучшения работы сайта и персонализации контента. Продолжая использовать сайт, вы соглашаетесь с использованием cookies в соответствии с нашей Политикой конфиденциальности.