Адаптивное изображение героя BG с <div> наверху

Я пытаюсь создать отзывчивый, полноразмерный герой img / banner с некоторым текстом наверху.

Поскольку мне нужен div поверх img / banner, содержащий некоторый текст, я решил использовать свойство CSS (а не элемент HTML) для изображения (я стараюсь избегать использования position: absolute если возможно).

После долгих экспериментов я, кажется, нашел отличное решение, чтобы получить background-image свойство вести себя как HTML <img> элемент (именно так я хочу, чтобы img вел себя при изменении размера)...

      * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.bg-img {
        background-image: url('https://www.bbva.com/wp-content/uploads/2016/12/Carl-Sagan-BBVA-1920x0-c-f.jpg');
        background-size: contain;
        background-repeat: no-repeat;
        width: 100%;
        padding-top: 40.57%;
        /* (img-height / img-width * width) */
        /* (779 / 1920 * 100) */
}

... однако это `` обходное '' решение, чтобы заставить изображение вести себя, вызывает заполнение для увеличения высоты контейнера bg-image, что заставляет <div> содержащий мой текстовый контент за пределами изображения и далее по странице :(

Есть ли способ решить эту проблему без использования абсолютного позиционирования в текстовом div, чтобы он располагался поверх bg-img?

Я поместил все в ручку, чтобы было легче играть:https://codepen.io/Hacktinium/pen/VwWRBdg

заранее спасибо

1 ответ

Не уверен, что понял на 100% ваш желаемый результат, если вы хотите, чтобы текст был вверху изображения без использования <img> , почему бы не поместить содержимое и изображение внутри оболочки, но в разные блоки div?

Я создал эту ручку в качестве примера:https://codepen.io/mvuljevas-the-selector/pen/zYzbJgO

Другие вопросы по тегам