为 css 中的较小设备用较小的图像覆盖“背景图像”会节省带宽或减少加载时间吗?

Overriding `background-image` with a smaller image for smaller devices in css, will save bandwidth or reduce loading time?

假设我这样做了:

@media only screen and (min-width: 1366px)
    .someBg {
         background-image: url('someBg_BIG.jpg');
    }
}

现在像这样覆盖背景图片:

@media only screen and (max-width: 480px)
    .someBg {
         background-image: url('someBg_SMALL.jpg');
    }
}

问题: 对于 480 像素以下的设备 - css 是否会先覆盖 class 然后 仅加载 被覆盖的图像?或者它会先 加载两个 图像,然后决定哪一个具有更高的优先级?

您正在使用 css @media 查询,该查询仅用于根据屏幕大小更改样式,不会影响任何加载。

所以这里如果你使用这个 css 那么两个图像都会先加载然后根据屏幕尺寸显示。

你可以试试这个

css:

.somebg{
 max-width: 1400px;
 padding: 0;
 margin: 0;
}
.somebg img{
    width: 100%;
}

并在 html 中: <div class="somebg"><img src="URL HERE"></div>

当您使用 @media 时,只会加载适当的图像。 如果分辨率超过 768px(例如),则只会加载一张图像。如果分辨率小于 768px,也只会加载一张图像。但是,如果您将 window 从 800px 调整为 500px,则两个图像都将被加载。 您可以在 Chrome 检查器中查看。

img {
  width: 400px;
  content:url("http://mnprogressiveproject.com/wp-content/uploads/2014/02/kitten.jpg");
}

@media screen and (max-width: 768px) {
  img {
    content:url("http://images6.fanpop.com/image/photos/34800000/Kittens-3-animals-34865509-1680-1050.jpg");
  }
}
<img alt="">