У меня есть <img>
, который показывает удаленное изображение. Я хочу, чтобы он был откат к другому локальному изображению, в случае, когда удаленный недоступен.Обратное изображение с CSS
<img class="cc_image fallback" src="http://www.iconarchive.com/download/i82888/limav/flat-gradient-social/Creative-Commons.ico">
.cc_image {
width: 256px;
height: 256px;
}
.cc_image.fallback {
/* this URL here is theoretically a local one (always reachable) */
background-image: url('https://cdn2.iconfinder.com/data/icons/picons-basic-3/57/basic3-010_creative_commons-256.png');
}
Он работает так, что когда ЦСИ изображение не найден, то фоновое изображение будет показано.
Недостатками являются:
- всегда будет загружаться фоновое изображение (дополнительный запрос HTTP)
- это показывает немного не обретенной-значок (вопросительный знак на сафари) на месте из оригинального изображения, которое отображается над фоновым изображением (не большая проблема, но я бы хотел избавиться от него)
Как я мог решить эти проблемы? Или: есть ли другая техника для достижения того же результата?
Я нашел this question, но данные решения полагаются на Javascript или на <object>
(что похоже на работу с Chrome). Я хотел бы получить чистое решение CSS/HTML без Javascript, если это возможно.
Я знаю о нескольких background-image
, но не уверен, что это хороший вариант (поддержка браузера? И будет ли он резервным с недостижимым изображением?). Или я думал о вложении SVG-изображения как data-uri.
Рекомендации по наиболее гибкому (и совместимому) методу?
Возможно похожие - http://stackoverflow.com/questions/22051573/how-to-hide-image-broken-icon-using-only-css-html-without-js –
Я думаю, вы можете использовать класс для резервного изображения, например: –
лучший ответ, который работает с изображением, имеющим альфа: http://stackoverflow.com/questions/8124866/how-does-one-use-the-onerror-attribute-of- an-img-element thx @MadalinaTaina, который заставил меня искать его! – Salix