Как скрыть значок "изображение не найдено" на IE и хром с помощью CSS

У меня есть несколько изображений на моей странице.

По умолчанию, если заданное изображение недоступно, индикатор отображения сломанного изображения отображается в Chrome и IE.

Мне нечего показывать, но альтернативный текст в этом случае. Есть ли способ обработать его с помощью CSS.

Ответ 1

с помощью javascript

<img src="broken.png" onerror="this.style.display='none'"/>

edit: добавлен небольшой снайпер, который будет обрабатывать все изображения.

$("img").error(function(){$(this).hide();});

пример: http://jsfiddle.net/Va2Wd/

Ответ 2

Попробуйте установить alt=" " как пустую строку. Если изображение не найдено, просто будет пустое место.

Ответ 3

Вы можете использовать событие onerror в JavaScript, чтобы действовать, когда изображение не загружается:

var img = document.getElementById("myImg");
img.onerror = function () { 
    this.style.display = "none";
}

или используйте

var images=document.getElementsByTagName("img");
for(i=0;img[i]!=null;i++)
{
img[i].style.display = "none";
}

Ответ 4

Вместо использования JavaScript или CSS вы можете использовать тег объекта. Это более чистый и простой код. Добавьте альтернативный текст между такими тегами:

<object data="img/failedToLoad.png" type="image/png">Alternative Text</object>

http://www.w3schools.com/tags/tag_object.asp