Вы можете сделать это в css, используя свойства «display: flex», «justify-content: center» и «align-items: center».Вот скрипка https://jsfiddle.net/yr510dcb/, а ниже приведен пример кода:
body{
font-family: 'Roboto Mono', monospace;
background-image: url("assets/handheld_bg_white.png");
background-size: cover;
background-repeat: no-repeat;
}
.background {
display: flex; /* establish flex container */
justify-content: center; /* center items vertically */
align-items: center; /* center items horizontally */
height: 50vw;
width: 80vw;
padding: 20px;
margin: 20px;
background-color: blue;
position:relative;
z-index: 100;
}
.overlay-box {
display: flex; /* establish flex container in case its content needs to be centered */
justify-content: center; /* center items vertically in case its content needs to be centered */
align-items: center; /* center items horizontally in case its content needs to be centered */
margin: 0 auto;
height: 25vw;
width: 25vw;
background-color: white;
position:relative;
z-index: 1000;
position:relative;
}
<div class = "background">
<div class = "overlay-box">
</div>
</div>
Эти свойства используются в родительском div (в данном случае «background») для центрирования его содержимого - дочернего div («overlay-box»).Я также добавил атрибуты "flex" и "center" в дочерний элемент, поэтому его содержимое снова центрируется, но вы можете удалить его, не затрагивая центрирование самого "оверлейного блока".
Еслиу вас есть фоновое изображение, вы можете обернуть изображение внутри родительского div, например,
<div class = "background">
<img src="/image.png" class="responsive"> /* image location - in this case a local image */
<div class = "overlay-box">
</div>
</div>
и добавить адаптивный класс в css, чтобы сделать его отзывчивым, и размер родительского элемента:
.responsive {
width: 100%;
height: auto;
}