Проект, над которым я работаю, представляет собой одностраничный веб-сайт, разделенный на разделы, первый раздел — это заголовок с нанесенным на него фоновым изображением. Моя цель — сделать так, чтобы это изображение реагировало на изменение размера, поэтому я установил для свойства background-size
значение cover
.
При масштабировании области просмотра в настольном браузере изображение соответственно масштабируется. Однако на мобильных клиентах (протестировано на iOS 7 и Andriod Froyo/Kitkat) изображение, кажется, остается на своей полной ширине/высоте, становясь очень пикселизированным и искаженным.
пример: http://www.bardiadost.ca
Сначала я подумал, что проблема была с отступом -500% и отступом 500%, который у меня был слева/справа от каждого раздела (я использую это для создания разделов полной ширины, сохраняя содержимое внутри моей сетки). Я вынул этот код и все еще получал тот же результат. Если у кого-то есть какие-либо подсказки относительно того, что я делаю неправильно, это было бы здорово.
Обновить
Я провел дополнительное расследование и подумал, что это может быть проблема iOS из-за ограничений на размер изображения (Подробнее здесь) и заменил мое довольно большое изображение размером 1,2 МБ на GIF размером 500 КБ. Однако проблема остается.
Обновление 2
Полного решения пока не нашел, но нашел исправление, которым доволен.
В моих глобальных стилях эти свойства фона установлены в разделе .masthead:
background: $tangerine;
background:
linear-gradient(
rgba(232,85,4, .84),
rgba(232,85,4, .84)
),
url("../images/pano2.png") no-repeat center center;
-webkit-background-attachment: fixed;
-moz-background-attachment: fixed;
-o-background-attachment: fixed;
-ms-backgroudn-attachment: fixed;
background-attachment: fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
В моей первой контрольной точке медиа-запроса я применяю эти стили к .masthead:
@media only screen and (max-width: 959px){
-webkit-background-attachment: scroll;
-moz-background-attachment: scroll;
-o-background-attachment: scroll;
-ms-backgroudn-attachment: scroll;
background-attachment: scroll;
-webkit-background-size: contain;
-moz-background-size: contain;
-o-background-size: contain;
background-size: contain;
}
contain
, кажется, дает мне результат на мобильном устройстве, который я ищу, но только если для свойства background-attachment
не установлено значение fixed
. Для меня это не было слишком большим компромиссом, поскольку фиксированные фоны в любом случае не работают должным образом на мобильных устройствах.