css 显示替代图像

o4tp2gmn  于 2023-01-06  发布在  其他
关注(0)|答案(4)|浏览(133)

如果找不到原始源文件,是否可以显示另一个图像?我希望只使用css和html实现这一点,而不使用javascript(或jQuery等)。这个想法是为了仍然显示一个图像,而不是IE的“alt”测试或默认(丑陋)交叉。如果没有javascript不可能,我宁愿用php检查img src,并使用基本的if-then-else。

3z6pesqy

3z6pesqy1#

非常简单,也是用很少代码实现此目的的最佳方法

<img class="avatar" src="img/one.jpg" alt="Not Found" onerror=this.src="img/undefined.jpg">

对我来说,上面的作品完美!

wvyml7n5

wvyml7n52#

您可以使用img元素的CSS background-image属性来完成此操作,即

img
{
background-image:url('default.png');
}

但是,您必须给予宽度或高度才能正常工作(当找不到img-src时):

img
{
background-image:url('default.png');
width:400px;
}
jdgnovmf

jdgnovmf3#

<object data="foobar.png" width=200 height=200>
  <img src="test.png" alt="Just testing.">
</object>

这里foobar.png是主映像,test.png是备用映像。根据object元素的语义,当且仅当主数据(由data属性指定)无法使用时,才应呈现元素(这里为img元素)的内容。
尽管在过去的一年里,浏览器在object的实现中出现了严重的错误,但这种简单的技术似乎在IE、Firefox、Chrome的现代版本中也能起作用。

uqdfh47h

uqdfh47h4#

是的,你可以只使用html来做,当img源代码找不到时,它会抛出错误,所以我们可以在这里处理它.还有一点是这样设置的.onerror = null用于递归调用(默认图像找不到)

<img alt="User Image" class="user-image" src="/Resources/images/user-icon.png" onerror="this.onerror=null; this.src='/Resources/images/default_img.png'">

相关问题