Я пытаюсь создать раздел для витрины для веб-страницы. Он состоит из div с (отзывчивым) фоновым изображением и заголовком, который будет центрирован по горизонтали и вертикали над этим изображением. Мне удалось получить изображение и сделать его отзывчивым, и я отцентрировал заголовок, но моя проблема возникает, когда размер окна становится меньше.
Я использую position: absolute, свойство top и transform для его центрирования, но свойство top работает, только если высота указана в родительском контейнере. Однако, когда окно сжимается до точки, в которой изображение начинает уменьшаться до уровня ниже его первоначальной высоты, текст не остается вертикально центрированным, а только горизонтально (поскольку я отклоняюсь от первоначальной высоты для верхней части (800 пикселей)).
Я не могу просто изменить высоту с помощью медиазапроса, так как размер изображения постоянно меняется, и я не могу не использовать высоту, потому что тогда свойство top не будет работать вообще, поэтому я немного запутался с тем, как чтобы обойти это.
Вот соответствующие разделы моего кода:
HTML:
<section class="showcase">
<div class="showcase-container">
<h1 class="centered"><span class="highlight">BR</span> Architects</h1>
</div>
</section>
CSS:
.container {
width: 80%;
margin: 0 auto;
padding: 0;
position: relative;
height: auto;
}
.showcase-container {
width: 80%;
margin: 0 auto;
padding: 0;
position: relative;
height: 800px;
}
.centered {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}