У меня есть эта HTML-структура:
<div class = "container">
<img class = "image" />
<div class = "overlay">
<div class = "insides">more elements here</div>
</div>
</div>
и этот код CSS:
.container {
position: relative;
height: 88vh;
margin: 0;
}
.image {
height: 100%;
position: absolute;
margin-right: auto;
margin-left: auto;
left: 0;
top: 0;
bottom: 0;
right: 0;
}
.overlay {
position: absolute;
}
Мои требования следующие:
width. (Не работает - проблема)top и left ... Не уверен, что это будет так просто, как я думаю.)Как я могу получить все это - горизонтально центрированное изображение, расширенное для заполнения вертикального пространства, точное наложение и элементы, прикрепленные к определенному месту изображения?
Хотя я бы предпочел взлом CSS, также будет рассмотрено решение Javascript на тот случай, если ширину изображения необходимо передать в оверлей программно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Один из способов сделать это - обернуть изображение и оверлей в div и центрировать его.
.container {
position: relative;
height: 88vh;
margin: 0;
text-align: center;
}
.imagecontainer
{
position: relative;
display: inline-block;
height: 100%;
}
.image {
height: 100%;
}
.overlay {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
}<div class = "container">
<div class='imagecontainer'>
<img class = "image" src='imageurlhere'/>
<div class = "overlay">
<div class = "insides">more elements here</div>
</div>
</div>
</div>Таким образом, Image будет устанавливать ширину своего родителя, а также ширину Overlay.
Мерси очень понравился!