📜  css 背景图片不显示更改默认图片 - CSS (1)

📅  最后修改于: 2023-12-03 15:00:09.366000             🧑  作者: Mango

CSS 背景图片不显示更改默认图片

在 CSS 中,我们可以通过 background-image 属性设置背景图片。但是,有时候我们需要在图片加载失败或未提供的情况下显示默认图片。下面我们将介绍一种解决方案。

解决方案

我们可以使用 CSS 伪类 ::before::after 来在元素中创建一个伪元素,并设置默认图片。当背景图片加载失败时,这个伪元素会展示出来。

以下是一个具体的示例:

<!DOCTYPE html>
<html>
<head>
    <style>
        .image-container {
            position: relative;
            width: 300px;
            height: 200px;
            background-color: #ccc;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .image-container::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: url(default-image.jpg);
            background-size: cover;
            z-index: -1;
        }
        
        .image-container img {
            display: block;
            max-width: 100%;
            max-height: 100%;
        }
    </style>
</head>
<body>
    <div class="image-container">
        <img src="image.jpg" alt="背景图片">
    </div>
</body>
</html>

在上面的示例中,我们创建了一个 .image-container 包含一个 img 元素。我们为 .image-container 添加了一个伪元素 ::before,并设置默认图片 default-image.jpg 作为背景。

如果 img 元素成功加载图片,则默认图片会被覆盖。但如果图片加载失败,.image-container::before 的默认图片将会展示出来。

务必将 default-image.jpg 替换成您项目中的默认图片路径。

希望这个解决方案对您有帮助!