Поскольку вы используете сетку CSS, вы можете покончить с абсолютным позиционированием в вашем классе .overlay
.
Сделайте так, чтобы у вашего класса .container
было это дополнительное свойство grid-template-rows: max-content minmax(0, 1fr);
Затем вы можете поместить свой .overlay
в первый ряд сетки, как у вас, а затем поместить свои .content
во второй ряд, чтобы они складывались. На .overlay
поставить margin-bottom: "however much you want it to overlap
. Это приведет к тому, что они будут слегка перекрываться при одновременном нажатии на изображения по мере роста вашего контента в .overlay
. Если в итоге вы поставите .overlay
перед .content
в порядке следования исходного кода, вам нужно будет добавить position: relative;
к .overlay
, чтобы он появился над изображениями. Так что в основном ваши 3 класса должны выглядеть примерно так -
.container {
display: grid;
grid-template-rows: max-content minmax(0, 1fr);
}
.content {
grid-row: 2 / 3;
}
.overlay {
width: 100%;
grid-row: 1 / 2;
border-radius: 0px 0px 30px 30px;
background-color: #ffffff;
opacity: 1;
margin-bottom: -10px;
}
По сути, вы устанавливаете два контейнера в соответствующие строки без наложения, а затем используете отрицательное поле, чтобы немного подтянуть изображения под сообщением. Не забудьте, что если вы в конечном итоге измените порядок HTML и поставите .overlay
над .content
, вам нужно будет присвоить ему position: relative;
, чтобы он отображался выше .content
. Это создает новый контекст для наложения, эффективно помещая его над изображениями. Если в итоге вы поставите .overlay
над .content
в исходном порядке, вам не нужно будет использовать CSS-сетки - просто, чтобы вы знали.