Это расстраивало меня годами. Мое исправление CSS устанавливает фоновое изображение на img
. Когда динамическое изображение src
не загружается на передний план, на bg img
отображается заполнитель. Это работает, если ваши изображения имеют размер по умолчанию (например, height
, min-height
, width
и / или min-width
).
Вы увидите значок разбитого изображения, но это улучшение. Проверено до IE9 успешно. iOS Safari и Chrome даже не показывают сломанный значок.
.dynamicContainer img {
background: url('/images/placeholder.png');
background-size: contain;
}
Добавьте немного анимации, чтобы дать src
время загрузки без мерцания фона. Chrome плавно исчезает на заднем плане, а настольный Safari - нет.
.dynamicContainer img {
background: url('/images/placeholder.png');
background-size: contain;
-webkit-animation: fadein 1s;
animation: fadein 1s;
}
@-webkit-keyframes fadein {
0% { opacity: 0.0; }
50% { opacity: 0.5; }
100% { opacity: 1.0; }
}
@keyframes fadein {
0% { opacity: 0.0; }
50% { opacity: 0.5; }
100% { opacity: 1.0; }
}