Причина, по которой это может быть действительно трудно достичь, заключается в том, что вы используете background-size: cover;
, что означает растяжение изображения при сохранении его соотношения сторон и обрезание изображения, чтобы соответствовать высоте и ширине контейнера. Когда вы комбинируете это с background-position: center center;
, оно будет одинаково обрезаться по краям. Наконец, вы используете два разных вида единиц измерения: height: 100vh; width: 100%;
Тогда возникает вопрос, перед тем, как изображение обрезается, каковы новые ширина и высота изображения, которое применяет «обложка»?
Это что-то очень сложное для CSS, чтобы определить, потому что это требует таких вещей, как знание соотношения вашего изображения (2560x1600 имеет соотношение 1,6: 1), затем попытка поместить его в контейнер переменной ширины и высоты так, чтобы он Достаточно небольшого размера, чтобы заполнить его, при этом обрезая что-либо, оставленное до обрезания, каков реальный размер изображения?
И height: 100vh;
, и width: 100%;
влияют на его размер, как описано выше. Поскольку для этого необходимо сравнить исходную высоту и ширину изображения с шириной и высотой контейнера, чтобы определить, как растянуть изображение, попытка вычислить этот тип математики с помощью чистого CSS - непростая задача для CSS, которую можно достичь без некоторой помощи со стороны JavaScript.
Достойным решением является добавление прозрачности к изображению ракеты, чтобы оно имело тот же размер, что и фон, чтобы оно также могло проходить через ту же логику растяжения и обрезки "покрытия".
Дайте этому шанс:
https://codepen.io/anon/pen/xjrPvM
HTML:
<div class="background" data-comment="2560x1600 has an aspect ratio of 1.6:1">
<div class="rocket">
</div>
</div>
CSS:
.background {
background-repeat: no-repeat;
background-image: url("https://wallpaper-house.com/data/out/7/wallpaper2you_191762.jpg");
background-size: cover;
background-position: center center;
height: 100vh;
width: 100%;
}
.rocket {
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
height: 100vh;
width: 100%;
background-image:
url('your-rocket-on-a-2560x1600-canvas-with-lots-of-transparency.png');
}
В коде ручки я использовал версию "your-rocket-on-a-2560x1600-canvas-with-lots-of-transparent.png" в кодировке base64.
это просто ракета, помещенная на холст 2560x1600, который я сделал в GIMP, преобразовал его на -20,0 градусов, переместил, чтобы он поместил туда, куда вы хотите, а затем экспортировал в формате PNG.