如果找不到原始源文件,是否可以显示另一个图像?我希望只使用css和html实现这一点,而不使用javascript(或jQuery等)。这个想法是为了仍然显示一个图像,而不是IE的“alt”测试或默认(丑陋)交叉。如果没有javascript不可能,我宁愿用php检查img src,并使用基本的if-then-else。
3z6pesqy1#
非常简单,也是用很少代码实现此目的的最佳方法
<img class="avatar" src="img/one.jpg" alt="Not Found" onerror=this.src="img/undefined.jpg">
对我来说,上面的作品完美!
wvyml7n52#
您可以使用img元素的CSS background-image属性来完成此操作,即
img { background-image:url('default.png'); }
但是,您必须给予宽度或高度才能正常工作(当找不到img-src时):
img { background-image:url('default.png'); width:400px; }
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的现代版本中也能起作用。
foobar.png
test.png
object
data
img
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'">
4条答案
按热度按时间3z6pesqy1#
非常简单,也是用很少代码实现此目的的最佳方法
对我来说,上面的作品完美!
wvyml7n52#
您可以使用img元素的CSS background-image属性来完成此操作,即
但是,您必须给予宽度或高度才能正常工作(当找不到img-src时):
jdgnovmf3#
这里
foobar.png
是主映像,test.png
是备用映像。根据object
元素的语义,当且仅当主数据(由data
属性指定)无法使用时,才应呈现元素(这里为img
元素)的内容。尽管在过去的一年里,浏览器在
object
的实现中出现了严重的错误,但这种简单的技术似乎在IE、Firefox、Chrome的现代版本中也能起作用。uqdfh47h4#
是的,你可以只使用html来做,当img源代码找不到时,它会抛出错误,所以我们可以在这里处理它.还有一点是这样设置的.onerror = null用于递归调用(默认图像找不到)