
Текст, наложенный на изображение, часто используется для создания баннеров, превью и карточек товаров. Такой прием позволяет объединить графику и информацию в едином блоке без использования дополнительных элементов разметки.
Базовый способ заключается в том, чтобы поместить текстовый блок и изображение в общий контейнер. При этом изображение задается как фоновое свойство через CSS background-image, а текст остается обычным содержимым контейнера. Такой вариант удобен, когда необходимо сохранить доступность и адаптивность.
Другой практичный метод – использовать свойство position: absolute для текста относительно контейнера с position: relative. Это дает полный контроль над расположением текста: его можно зафиксировать по центру, в углу или на любой другой части изображения.
Чтобы сохранить читаемость текста, рекомендуется применять фоновые подложки с полупрозрачностью или тени через text-shadow. Такой подход позволяет избежать ситуаций, когда яркие участки изображения перекрывают буквы.
Использование позиционирования CSS для наложения текста

Для точного наложения текста применяют контейнер с position: relative, внутри которого текстовый блок получает position: absolute. Такой подход фиксирует текст относительно границ контейнера, а не всей страницы.
Например, свойства top, left, right и bottom позволяют задать отступы в пикселях или процентах, что упрощает выравнивание над изображением. При необходимости центрирования используют комбинацию top: 50% и left: 50% с добавлением transform: translate(-50%, -50%).
Чтобы текст оставался читаемым, рекомендуется применять полупрозрачный фон с помощью rgba() или свойство text-shadow. Такой приём предотвращает слияние текста с деталями изображения.
Если требуется наложение нескольких элементов, важен порядок их отображения. Для этого используется z-index, где большее значение обеспечивает приоритет расположения текста поверх остальных слоёв.
Размещение текста в центре изображения

Для позиционирования текста в центре удобно использовать контейнер с относительным позиционированием и вложенный блок с абсолютным позиционированием. Такой подход гарантирует, что текст окажется строго в середине по вертикали и горизонтали.
Пример структуры:
<div style="position: relative; width: 400px; height: 250px;">
<img src="photo.jpg" alt="Пример">
<div style="position: absolute; top: 50%; left: 50%;
transform: translate(-50%, -50%);
color: white; font-size: 20px;">
Центрированный текст
</div>
</div>
Ключевые моменты:
| Свойство | Назначение |
|---|---|
| position: relative; | Определяет систему координат для вложенного блока. |
| position: absolute; | Позволяет перемещать текст внутри контейнера независимо от других элементов. |
| top: 50%; left: 50%; | Смещает текст в центр по обеим осям. |
| transform: translate(-50%, -50%); | Корректирует смещение так, чтобы текст оказался ровно в центре. |
Для адаптивных макетов ширину контейнера лучше задавать в процентах, а шрифт – в относительных единицах (em, rem, vw). Это обеспечит одинаковый результат на экранах разного размера.
Выравнивание текста по верхнему и нижнему краю картинки
Для жёсткой привязки текста к верхней границе изображения применяют контейнер с position: relative, внутри которого размещают текстовый блок с position: absolute; top: 0;. Такой приём исключает смещение текста при изменении размеров изображения.
Если требуется закрепить текст у нижнего края, используется аналогичный подход: position: absolute; bottom: 0;. При этом стоит предусмотреть отступы через padding, чтобы текст не сливался с границей.
При наложении заголовков у верхнего края рекомендуется использовать контрастный фон или text-shadow для повышения читаемости. Для нижних подписей лучше применять полупрозрачный фон с rgba(), что позволит сохранить видимость изображения и читаемость текста одновременно.
Добавление полупрозрачного фона под текст
Для создания полупрозрачного фона под текстом используйте CSS-свойство background-color с RGBA или HSLA. Пример: background-color: rgba(0, 0, 0, 0.5); – черный фон с 50% прозрачностью.
Оборачивайте текст в блоковый элемент, например <div> или <span> с display: inline-block для точного контроля размеров. Это позволяет ограничить область прозрачного фона только вокруг текста.
Используйте padding для отступов между текстом и границами фона: padding: 10px 15px;. Это улучшает читаемость и предотвращает слияние текста с изображением.
Для закругленных углов добавьте border-radius: border-radius: 8px;. При необходимости комбинируйте с box-shadow для создания объемного эффекта.
Применение CSS-свойства color важно для контраста текста и фона. Для темного фона используйте светлый текст, например color: #ffffff;, для светлого – color: #000000;.
Пример полной конструкции: <div style=»background-color: rgba(0,0,0,0.5); padding:10px 15px; border-radius:8px; color:#fff;»>Ваш текст</div>. Такой подход гарантирует читаемость на любых изображениях.
Адаптивное наложение текста при изменении размеров экрана

Для сохранения читаемости текста на изображении важно использовать относительные единицы измерения. Указывайте размеры шрифта в vw или em, чтобы они масштабировались вместе с шириной окна. Например, font-size: 2vw; обеспечивает пропорциональный рост текста при увеличении экрана.
Используйте контейнер с position: relative; для изображения и position: absolute; для текста. Указывайте координаты через проценты: top: 50%; left: 50%; transform: translate(-50%, -50%);. Это гарантирует, что текст останется по центру вне зависимости от размеров экрана.
Для многострочного текста задавайте max-width в процентах контейнера, например max-width: 80%;. Это предотвращает растягивание текста за пределы изображения на больших экранах.
Медиа-запросы @media позволяют регулировать размер шрифта, отступы и расположение текста для конкретных диапазонов экранов. Например, @media (max-width: 768px) { font-size: 4vw; } увеличивает читаемость на мобильных устройствах.
Для контраста используйте полупрозрачные фоны через background-color: rgba(0,0,0,0.4); или текстовые тени text-shadow: 1px 1px 2px rgba(0,0,0,0.7);. Это сохраняет видимость текста на разных частях изображения без нарушения адаптивности.
Не задавайте фиксированные высоты контейнеров. Используйте height: auto; или aspect-ratio для сохранения пропорций изображения и корректного позиционирования текста при изменении ширины окна.
Для сложных композиций применяйте CSS Grid или Flexbox. Центрирование текста с Flexbox: display: flex; justify-content: center; align-items: center; позволяет адаптивно распределять пространство и сохранять текст на нужной позиции при масштабировании.
Применение flexbox и grid для размещения текста поверх фото

Для точного позиционирования текста поверх изображения в HTML можно использовать современные CSS-модели – flexbox и grid. Они обеспечивают гибкое выравнивание и адаптацию под разные размеры экранов без использования абсолютного позиционирования.
Flexbox
Flexbox подходит для случаев, когда требуется центрировать текст или разместить его в одном направлении (по горизонтали или вертикали) относительно изображения.
- Оборачиваем изображение и текст в один контейнер с display: flex.
- Используем justify-content и align-items для выравнивания текста по горизонтали и вертикали.
- Для наложения текста задаём контейнеру position: relative, а тексту – position: absolute; это позволяет flex-свойствам работать внутри блока.
- Пример структуры:
.container {
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.overlay {
position: absolute;
color: white;
text-align: center;
}
Grid

Grid позволяет создавать сложные макеты, где текст может занимать определённые зоны поверх изображения.
- Контейнер задаём display: grid.
- Разделяем сетку на один или несколько рядов и колонок, чтобы текст точно попадал в нужную область.
- Используем grid-template-areas для обозначения зоны текста.
- Пример структуры:
![]()
Текст поверх изображения
.grid-container {
display: grid;
position: relative;
}
.grid-text {
grid-area: 1 / 1 / 2 / 2;
justify-self: center;
align-self: center;
color: white;
text-align: center;
}
Flexbox удобен для простого центрирования и горизонтального/вертикального выравнивания, grid – для сложных компоновок, где текст должен занимать конкретные зоны изображения. В обоих случаях важно задавать position: relative контейнеру для корректного наложения текста.
Вопрос-ответ:
Как сделать так, чтобы текст располагался поверх изображения в HTML?
Чтобы текст отображался поверх изображения, можно использовать контейнер с изображением в качестве фона через CSS. Например, создайте
Можно ли разместить текст поверх изображения с помощью тега <img>?
Да, можно, но для этого изображение и текст должны находиться в одном контейнере с относительным позиционированием. Изображение задают обычным тегом <img>, а текст — с помощью абсолюного позиционирования через CSS. Например, контейнеру устанавливают position: relative, а тексту внутри — position: absolute с координатами сверху и слева.
Как сделать текст на изображении читаемым, если фон слишком яркий?
Для улучшения читаемости текста поверх изображения можно использовать полупрозрачный слой между изображением и текстом. Это делается через отдельный
Можно ли разместить несколько блоков текста поверх одного изображения?
Да, можно. Для этого обычно используют контейнер с изображением в качестве фона и несколько внутренних блоков
Как сделать текст адаптивным, чтобы он оставался на месте при изменении размера окна?
Для адаптивного текста используют относительные единицы измерения, такие как %, vw, vh, или CSS-свойства flex и grid. Контейнеру с изображением обычно задают position: relative, а текстовым блокам — position: absolute с координатами в процентах. Ещё можно применить media queries для изменения размера шрифта или положения текста на разных экранах, чтобы сохранить читаемость.
