
< pre class="lang-html Prettyprint-override">
Код: Выделить всё
1
2
3
4
5
Код: Выделить всё
:root {
--card-top-offset: 3rem;
--card-h: 36rem;
}
.cards {
display: grid;
grid-template-columns: repeat(1, minmax(0, 1fr));
gap: calc(var(--card-h) / 2);
align-items: baseline;
}
.card {
position: sticky;
top: 0;
height: var(--card-h);
transition: all 0.5s;
}
Код: Выделить всё
for (const cards of document.querySelectorAll(".cards")) {
let i = 0;
for (const card of cards.children) {
if (card.classList.contains("card")) {
card.style.top = `calc(5vh + ${i} * var(--card-top-offset))`;
i += 1;
}
}
cards.style.setProperty(
"grid-template-rows",
`repeat(${i}, var(--card-h))`,
);
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... rid-layout
Мобильная версия