Прозрачный фон становится белым при изменении размера изображения
У меня есть HTML-страница, где мне нужно визуализировать 3 изображения, одно поверх друг друга.
<div id="preview">
<img src="transparent-image">
</div>
со следующим CSS
#preview{
background-image:url(layer0-image), url(layer1-image);
background-size:100%, 100px;
background-blend-mode: multiply;
width: 820px;
height: 350px;
}
Первые два изображения смешиваются вместе с помощью свойства CSS background-blend-mode: multiply, поверх этого я помещаю последнее изображение (transparent-image) с прозрачным фоном (представьте фотографию комнаты с площадью стены прозрачный).
Результат именно то, что я хочу, но когда я пытаюсь поставить
#preview{
width:100%
}
сделать его отзывчивым; Работает без нареканий, но на ios прозрачность теряется. Я тестировал это поведение на Chrome, Safari и Firefox (iOS). Нет проблем на Chrome, Safari, Firefox на OSX, Android, Windows.
Я что-то упускаю? Спасибо за ваше время.
РЕДАКТИРОВАТЬ:
layer0-image и transparent-image - это одно и то же изображение, layer0-image не имеет прозрачности и умножается на layer1-image, а затем поверх этого смешанного изображения я помещаю transparent-image.
Я пытался заменить прозрачное изображение другим, проблема, кажется, заключается в смешении layer0-image и layer1-image, но из-за того, что layer0-image и transparent-image совпадают, сначала я подумал, что проблема прозрачности.
Прозрачность есть, но div #preview имеет высоту 0px при установке в
#preview{
width:100%;
height:auto;
}
Не показывая смешивания.
EDIT2:
Я добавляю пример, чтобы показать и повторить ошибку: https://jsfiddle.net/dyqnghdo/3/
1 ответ
Хорошо, я наконец нашел проблему. Наличие:
#preview{
background-image:url(layer0-image), url(layer1-image);
background-size:100%, 100px;
background-blend-mode: multiply;
width: 820px;
height: 350px;
}
и затем установка:
#preview{
width:100%;
}
вызвал ошибку. Чтобы исправить это, я попытался установить:
#preview{
width:100%;
background-size:cover, 100px;
}
Проблема исчезла, даже если мне не понятно, почему это происходит.