使用 CSS 选择性地仅更改多个 HTML 背景图像大小中的一个

Selectively changing only one of multiple HTML background image sizes with CSS

我正在编写一个使用多个图像作为背景的网站,如下所示,

background-image:
   url('someimage1.png'),
   url('image2.png'),
   url('image3.png');

而且我可以像这样在一个语句中更改每个图像的某些 CSS 样式属性,

background-size:
   5vw auto,      // styles image 1
   100% 99%,      // then image 2
   auto 98vh;     // and 3

例如,我可以更改第三张背景图片的 background-size 属性 而不以任何方式更改第一张和第二张背景图片吗?我希望能够以 'responsive' 的方式更改其中一张图片的尺寸,但无论如何都要让其他两张图片保持相同的尺寸。

我最好能够在不使用 javascript 的情况下实现这一目标。

您可以使用变量并通过媒体查询或自定义轻松更新它们 类:

:root {
  --size-one: 100% 50%;
  --size-two: 50% 100%;
  --size-three: 80% 100%;
}

.back {
  height: 200px;
  background-image: linear-gradient(to right, red, red), linear-gradient(black, blue), linear-gradient(30deg, black, green);
  background-repeat: no-repeat;
  background-size: var(--size-one), var(--size-two), var(--size-three);
}

.update {
  --size-three: 80% 80%;
}

@media all and (max-width:800px) {
  :root {
    --size-one: 80% 50%;
  }
}
<div class="back">
</div>
<div class="back update">
</div>