Лучший способ добиться этого - иметь родительский контейнер с двумя прямыми дочерними элементами, один элемент изображения с изображениями соответствующего размера, а другой элемент уровня блока (div подходит).
базовая разметка может выглядеть примерно так (измените размер браузера, чтобы увидеть эффект):
* {
box-sizing: border-box;
max-width: 100%;
}
.splash {
height: 20em;
position: relative;
}
.splash img {
height: 100%;
object-fit: cover;
width: 100%;
}
@media (min-width: 40.1em) {
.splash {
height: 100vh;
overflow: hidden;
}
.splash > img {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left; 0;
width: 100%;
}
.splash > .modal {
background-color: hsla(0,0%,0%,.2);
height: 100vh;
position: absolute;
top: 0;
left: 20%;
width: 30%;
}
}
<div class="splash">
<picture>
<img src="//unsplash.it/1600x900" />
</picture>
<div class="modal">
<p>Form goes here/</p>
</div>
</div>
Поначалу может быть немного сложно определить, учитывая простоту макета, но модал находится поверх элемента img в больших окнах просмотра, ноне на меньших.Вы хотели бы уточнить его и настроить размер в соответствии с вашими требованиями.
Вы хотели бы добавить больше источников изображения в элемент изображения, чтобы загрузить изображение, соответствующее экрану.Извините, я не могу дать больше подробностей, но мне нужно бежать на встречу, и это довольно простой подход, который не зависит от структуры.Я не думаю, что в Bootstrap есть встроенное решение для этого, так как это не очень распространенная функция, но я могу ошибаться.