如何使用 CSS 在 IE 和 chrome 上隐藏“找不到图像”图标

Posted

技术标签:

【中文标题】如何使用 CSS 在 IE 和 chrome 上隐藏“找不到图像”图标【英文标题】:how to hide "image not found" icon on IE and chrome using CSS 【发布时间】:2013-08-31 08:10:48 【问题描述】:

我的页面上有一些图片。

默认情况下,如果给定图像不可用,则损坏的图像指示器会显示在 Chrome 和 IE 上。

我希望 nothing 在这种情况下只显示替代文本。有没有办法使用 CSS 来处理它。

【问题讨论】:

***.com/questions/3235913/… 【参考方案1】:

尝试将alt=" "设置为空字符串,如果找不到图像,则只有一个空格。

【讨论】:

Chrome 不会隐藏损坏图像的图标,但 OP 想要隐藏这些图标 感谢您的回复。在 IE 上也会出现损坏的图像,我希望它使用 CSS 而不是 JS 来完成,如果有任何可用的选项,请帮助。【参考方案2】:

您可以使用 javascript 中的 onerror 事件在图像加载失败时采取行动:

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";

【讨论】:

【参考方案3】:

使用javascript

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

编辑:添加了将处理所有图像的小片段。

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

示例:http://jsfiddle.net/Va2Wd/

【讨论】:

这可以作为一个例子,但是如果 OP 对很多图像都这样做,那么 JS 应该 not 内联【参考方案4】:

您可以使用 object 标签,而不是使用 JavaScript 或 CSS。它的代码更简洁。在标签之间添加替代文本,如下所示:

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

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

【讨论】:

以上是关于如何使用 CSS 在 IE 和 chrome 上隐藏“找不到图像”图标的主要内容,如果未能解决你的问题,请参考以下文章

IE11中的CSS等宽和高度网格框

如何在 IE 中使用 css 隐藏选择选项?

为啥 IE 和 Chrome 呈现 css 边框底部宽度不同?

有没有办法让 CSS :not() 选择器在 IE 和 Chrome 中工作?

固定导航上的 CSS 剪辑/剪辑路径在 Chrome 和 IE 中不合作

CSS 不适用于 IE 和 Firefox,但适用于 Chrome