Причина, по которой фон исчезает, заключается в том, что, как только вы убираете внутри него вещи, которые занимают место, он сжимается до нуля.Задав для него ширину и высоту, фон остается после исчезновения.
Причина, по которой фоновое изображение не заполняет прямоугольник, заключается в том, что вы не масштабируете его.
См. Скрипку здесь: https://jsfiddle.net/a8mu9z0v/
Я использовал
background-size: cover;
Но вам может пригодиться другой метод масштабирования.
Редактировать:
Настройка фонового изображения в зависимости от направления его масштабирования.
Если вы измените ширину обертки в моем примере, но оставите высоту как фиксированное значение , фоновое изображение будет масштабировано до ширины, но обрезает нижнюю часть изображения.когда масштабированное изображение превышает границы.
width: 100%;
height: 200px;
Если вы измените размер фона на 100%, он будет масштабироваться до границ оболочки, но не будет сохранять свое соотношение сторон:
background-size: 100% 100%;
Если вы хотите сохранить определенное соотношение сторон для обертки, то есть определенные приемы CSS, которые могут помочь вам сделать это, что вы можете увидеть в другом месте.
Другой вариант - использоватьэлемент изображения вместо использования фонового изображения.Элементы изображения по сути занимают место.Ваша обертка не уменьшится до нуля, если в ней все еще будет элемент изображения.Элемент изображения легко масштабировать до размера окна.