Я обычно делаю это при использовании flex для разметки сетки, когда мне нужен запасной вариант для display: grid;
. Вы можете добавить пустые заполнители сетки с той же шириной / полем, что и у обычных карт, и установить высоту на 0. Формула должна иметь на 1 заполнитель меньше, чем количество строк в вашей карте, поэтому 4 карты> 3 заполнителя, 8 карт> 7 заполнителей , Надеюсь, это понятно.
Если вам не нужен запасной вариант, вы можете использовать класс .grid
в моем примере ниже.
РЕДАКТИРОВАТЬ
По мере работы с Vue вы можете сделать это. Помните, что min-width - это просто значение, которое я принял, и оно должно было бы изменить его для представления ваших точек останова. Если вам нравится, вам даже не нужна эта часть. Это просто стартовый комплект для вас, его можно изменить по своему вкусу и потребностям проекта.
<template v-if="window.matchMedia('(min-width: 998px)').matches">
<div v-for="i of 15" :key="`card-filler-grid-name-${i}`" class="card--filler" />
</template>
.cards-list {
padding-top: 20px;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
max-width: 40rem;
margin-bottom: 4rem;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
max-width: 40rem;
}
.card {
width: 120px;
height: 180px;
background-color: red;
margin-bottom: 10px;
}
.card--filler {
width: 120px;
height: 0;
}
<div class='cards-list'>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card--filler'></div>
<div class='card--filler'></div>
<div class='card--filler'></div>
<div class='card--filler'></div>
</div>
<div class='grid'>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
</div>