CSS и вёрстка

Как позиционировать в css

📅 ⏱ 21:12 ⏳ 1 мин 💬 0

Как позиционировать в css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем тему:

Коротко: положение элемента задаёт свойство position со значениями static, relative, absolute, fixed и sticky. Сдвиг указывают через top, right, bottom, left, а порядок наложения — через z-index.

Кому и зачемПозиционирование нужно для выпадающих меню, всплывающих подсказок, модальных окон, значков на кнопках, закреплённых шапок. Без него сложно управлять слоями и наложением элементов.

Значения position

Значение Поведение
static обычный поток, сдвиги не работают
relative сдвиг от своего места, остаётся в потоке
absolute выходит из потока, позиция от родителя
fixed привязан к окну, не двигается при прокрутке
sticky прилипает при достижении края

Relative и absolute

Частая связка: родителю задают relative, а дочернему — absolute. Тогда координаты дочернего считаются от родителя, а не от страницы.

CSS
.card { position: relative; }

.card .badge {
  position: absolute;
  top: 8px;
  right: 8px;
}

Если у родителя нет position, абсолютный элемент уйдёт к ближайшему позиционированному предку или к странице — частая причина «слетевших» элементов.

Вкладки: примеры



CSS
.top-btn {
  position: fixed;
  right: 24px;
  bottom: 24px;
}

Кнопка «наверх», прикреплённая к окну. Она не участвует в потоке, поэтому может перекрыть контент — учитывайте это.

CSS
.thead {
  position: sticky;
  top: 0;
  background: #fff;
}

«Липкая» шапка таблицы или заголовок раздела. Прилипает, когда доходит до верхнего края, и остаётся видимой при прокрутке.

CSS
.modal { position: fixed; z-index: 1000; }
.modal__close { position: absolute; z-index: 1; }

z-index управляет порядком слоёв и работает только у позиционированных элементов. Большее число — ближе к пользователю.

Частая ошибкаz-index не сработает, если у элемента position: static (по умолчанию). Сначала задайте позиционирование, потом управляйте слоями. И помните: z-index работает в пределах родительского стека.

Практика: расположить элемент

  1. Определите, должен ли элемент оставаться в потоке.
  2. В потоке — relative, вне потока — absolute или fixed.
  3. Позиционированному родителю задайте position: relative.
  4. Укажите сдвиг через top, left и другие.
  5. Задайте z-index, если элементы перекрываются.
  6. Проверьте поведение при прокрутке и на мобильном.

Частые ошибки: причина → решение

Симптом Причина Решение
Абсолютный элемент улетел в угол страницы у родителя нет position position: relative родителю
Сдвиги не работают position: static задать другое значение
z-index не помогает элемент не позиционирован добавить позиционирование
Sticky не прилипает не задан top добавить координату
Контент перекрыт fixed без отступа добавить отступ контенту

Проверьте себя

Чек-лист




Какое значение вырывает элемент из потока?




Что нужно, чтобы z-index заработал?




Вопросы и ответы

absolute позиционируется относительно родителя и прокручивается вместе со страницей, а fixed привязан к окну браузера и остаётся на месте при прокрутке.

Это область, внутри которой сравниваются z-index. Если родитель создал свой контекст, дочерний элемент не «перепрыгнет» через элементы вне этого родителя, каким бы большим ни был z-index.

Иногда да — через flex или grid. Но для наложения значков, подсказок и слоёв абсолютное позиционирование остаётся самым удобным.

Причины две: не задана координата top и у родителя стоит overflow: hidden. Уберите ограничение и добавьте координату.

Итоги

  • position задаёт способ позиционирования элемента.
  • Для absolute нужен позиционированный родитель.
  • fixed привязан к окну, sticky прилипает при прокрутке.
  • z-index работает только у позиционированных элементов.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость