Вебсправочник
Основы веб-разработки

Содержащий блок: откуда считаются размеры и смещения

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

Назначение

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

Как это работает

У абсолютного элемента его часто формирует ближайший подходящий позиционированный предок. Некоторые свойства, например transform, тоже могут менять соответствующий контекст. Это не всегда непосредственный родитель в HTML.

Пример

<style>.card{position:relative;min-height:120px;padding:32px 16px;border:1px solid}.tag{position:absolute;top:8px;right:8px;background:#eaf4ee}</style>
<div class="card"><span class="tag">Пример</span>Основной текст карточки.</div>

Что должно получиться

Метка расположена у верхнего правого края карточки, потому что карточка создаёт подходящий содержащий блок. Она не добавляет высоту в обычный поток.

Граница применения и частая ошибка

Не считайте top:0 безусловным верхом окна браузера. При неожиданном положении сначала выясните содержащий блок и тип позиционирования, затем уже меняйте числовые смещения.

Самостоятельная проверка

Добавьте position:relative внутреннему контейнеру и сравните положение абсолютной метки до и после. Проверьте, какое изменение действительно создало нужную систему отсчёта.

HTML и CSS можно изменить в песочнице ниже. Она изолирована: JavaScript, внешние ресурсы и отправка форм отключены. Для проверки сетевых запросов, отправки данных или функций браузера используйте отдельную локальную страницу.

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

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.