← Все вопросы

Как наложить текст поверх картинки в CSS?

Задан 8 месяцев назад561 просмотров3 ответа
10

Есть картинка-баннер, на ней нужно написать заголовок прямо поверх изображения (по центру). Как это правильно сделать?

3 ответа

18
✓ Принятый ответ — помог автору

Стандартный приём: контейнеру position: relative, тексту position: absolute и центрируешь его внутри:

.banner {
  position: relative;
}
.banner img {
  width: 100%;
  display: block;
}
.banner .caption {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
}

Ключ — relative на родителе: тогда absolute у текста отсчитывается от баннера, а не от всей страницы. Часто ещё добавляют тёмную подложку, чтобы текст читался: background: rgba(0,0,0,.4) на caption или градиент.

dada ya для читаемости text-shadow: 0 1px 3px rgba(0,0,0,.6) тоже выручает · 8 месяцев назад
8

Можно вообще без absolute: повесить картинку как background-image на блок и просто написать текст внутри, центрировав флексом.

3

relative + absolute.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект