当网页中的图片加载失败的时候,会出现一个特别丑陋的图标,对用户体验影响比较大。
概述
例如如下代码:
<img src="./none.jpg" />
默认情况下,图片加载失败的时候会出现这个图标:
这个图标是非常影响用户体验的,所以必须使用一种解决方案来解决这种问题。
解决方案
首先我们去掉这个丑陋的图标:
<img src="./none.jpg" alt="" />
给img标签加入alt属性后,当图片加载失败后,会展示那个图标和alt
属性值。
当alt
属性值为空的时候,那这张图片加载失败后就不会有任何的显示。
这样虽然已经去掉了图标,但是会显示一片空白,有没有更好的办法在图片加载失败的时候,给用户展示我们想展示的内容的内容呢?
答案当然是可以的。
原理
img标签的伪元素只有在图片加载失败的时候才会加载。
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
img {
position: relative;
width: 150px;
height: 100px;
}
img::before {
content: '暂无图片';
position: absolute;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
width: 150px;
height: 100px;
font-size: 12px;
color: #aaa;
background-color: aliceblue;
}
</style>
</head>
<body>
<img src="http://n.sinaimg.cn/ent/transform/20161009/wENJ-fxwrhpq6162166.jpg" alt="" />
<img src="http://n.sinaimg.cn/ent/transform/20161009/wENJ-fxwrhpq616216.jpg" alt="" />
</body>
</html>