← Все вопросы
Как наложить текст поверх картинки в CSS?
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.
Ваш ответ
Войдите, чтобы ответить на вопрос.