Медиа-запросы и фоновые изображения

У меня есть div

<div id="page">

</div>

Со следующим css:

   #page {
    background: url('images/white-zigzag.png') repeat-x;
    }

    @media (max-width: 600px) {
  #page {      
  background: url('images/white-zigzag-mobile.png') repeat-x;
  }
}

Я замечаю, когда меняю размер моего браузера, я вижу "мобильный" фон (хороший), но если я вернусь и сделаю свой браузер большим, мой предыдущий "большой" фон не всегда появится снова.

Это периодическая проблема, но это происходит достаточно часто, и я думаю, что я должен ее рассмотреть.

Есть ли способ обойти эту проблему "фоновое изображение не появляется" или способ изменить размер фоновых изображений, чтобы медиа-запрос "сжимал" фоновое изображение в соответствии с новым размером? Насколько я знаю, нет (широко распространенного) способа изменить размер фонового изображения...

Ответ 1

Согласно этот тест:

Если вы хотите только настольную версию изображения, загружаемого на рабочий стол...

и только мобильное изображение, которое будет загружено на мобильное устройство -

Вам нужно использовать объявление min-width, чтобы указать минимальную ширину браузера для изображения рабочего стола...

и a max-width для мобильного изображения.

Таким образом, ваш код будет выглядеть следующим образом:

@media (min-width: 601px) {
  #page {
    background: url('images/white-zigzag.png') repeat-x;
  }
}

@media (max-width: 600px) {
  #page {      
     background: url('images/white-zigzag-mobile.png') repeat-x;
  }
}

Ответ 2

Код, который вы предоставили, немного ошибочно, что, вероятно, является хорошим местом для начала, в настоящее время у вас есть

#page {
background: url('images/white-zigzag.png') repeat-x;
}

@media (max-width: 600px) {
background: url('images/white-zigzag-mobile.png') repeat-x;
}

Часть запросов на мультимедиа не завершена. Вам все равно необходимо предоставить селектор CSS, который использовался вне запроса:

#page {
background: url('images/white-zigzag.png') repeat-x;
}

@media (max-width: 600px) {
  #page {      
  background: url('images/white-zigzag-mobile.png') repeat-x;
  }
}

Начните с этого и сообщите мне, если это исправить.

Ответ 3

пожалуйста, используйте

@media screen and (min-width: 320px) and (max-width:580px) {
  #page {
    background: url('images/white-zigzag.png') repeat-x
  }
}