当 <img>
标签不能显示图像时,可以通过以下几种方法来显示替代的超文本标记语言(HTML)内容:
onerror
事件onerror
事件可以在图像加载失败时触发,并允许你指定一个替代的 HTML 内容。
<img src="path/to/image.jpg" onerror="this.onerror=null; this.outerHTML='<p>图像加载失败</p>';">
通过 CSS 的 content
属性和伪元素 ::before
或 ::after
,可以在图像加载失败时显示替代文本。
<style>
.image-fallback {
position: relative;
}
.image-fallback::before {
content: '图像加载失败';
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #fff;
text-align: center;
line-height: 200px; /* 根据需要调整 */
}
.image-fallback img {
display: block;
}
.image-fallback img:not([src]):not([srcset])::before,
.image-fallback img[src=""]:not([srcset])::before,
.image-fallback img[srcset=""]::before,
.image-fallback img[src]:not([srcset]):onerror::before,
.image-fallback img[srcset]:onerror::before {
display: block;
}
</style>
<div class="image-fallback">
<img src="path/to/image.jpg" alt="描述性文本">
</div>
通过 JavaScript 监听图像加载事件,并在加载失败时动态替换图像元素。
<img id="myImage" src="path/to/image.jpg" alt="描述性文本">
<script>
document.getElementById('myImage').addEventListener('error', function() {
this.outerHTML = '<p>图像加载失败</p>';
});
</script>
通过以上方法,可以在图像加载失败时显示替代的 HTML 内容,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云