Вот решение. Хитрость заключается в том, чтобы использовать изображения в качестве CSS фона, потому что CSS фон можно легко исправить в окне просмотра их родителей.
.blue {
position: absolute;
top:0;
height:150vh;
width:100vw;
background: blue fixed linear-gradient(lightblue, lightblue) 45vw 30vh / 10vw 40vh no-repeat;
}
.red {
position: absolute;
top:100vh;
height:100vh;
width: 100vw;
background: red fixed linear-gradient(lightcoral, lightcoral) 45vw 30vh / 10vw 40vh no-repeat;
}
<div class="blue"></div>
<div class="red"></div>
В этом решении вы можете заменить linear-gradient(color, color)
URL-адресом вашего изображения, используя url(https://…)
. Я использовал градиенты, потому что для браузера градиенты - это (сгенерированные) изображения. Итак, этот трюк действительно работает с изображениями.
position: absolute
также становится бесполезным, по крайней мере, для демонстрации.
Длинное правило background
может потребовать некоторых пояснений. background
- это сокращение (= короткий способ записать несколько свойств в одной строке) для:
background-color: red;
background-attachement: fixed;
background-image: linear-gradient(lightcoral, lightcoral);
background-position: 45vw 30vh;
background-size: 10vw 40vh;
background-repeat: no-repeat;