Почему нижние элементы grid по высоте меньше, чем самые верхние?
Помогите пожалуйста решить данную проблему. Нижние блоки отличаются по высоте с верхними. Все блоки должны иметь высоту 350рх, когда нижние составляют, почему то, всего 290рх. Везде искал решение данной проблемы, но все насмарку.
.section {
display: flex;
justify-content: center;
}
.cards__spec_list {
background: none;
border: 1px solid red;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
grid-template-rows: 350px;
max-width: 1200px;
}
.card__spec {
background: #e6e7ee;
border:1px solid green;
}
li {
color: #0f5ba7;
}
.card__spec > h2 {
color: #082a4d;
}
i {
color: #082a4d;
}
<section class="section">
<div class="cards__spec_list">
<div class="card__spec">
<h2 style="color: #082a4d">ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i style="color: #082a4d">Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card__spec">
<h2 style="color: #082a4d">ИНОСТРАННЫЕ ЯЗЫКИ</h2>
<div class="store__card">
<strong>Педагогическое образование (с двумя профилями подготовки)</strong>
<br>
<i style="color: #082a4d">Филологический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card__spec">
<h2 style="color: #082a4d">ТЕХНОЛОГИИ СОЦИАЛЬНОЙ РАБОТЫ В РАЗЛИЧНЫХ СФЕРАХ ЖИЗНИДЕЯТЕЛЬНОСТИ</h2>
<div class="store__card">
<strong>Социальная работа</strong>
<br>
<i style="color: #082a4d">Социально-педагогический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">История (ЕГЭ)</li>
<li style="color: #0f5ba7">Обществознание (ЕГЭ) / Литература (ЕГЭ)</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card__spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card__spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
</section>
Ответы (3 шт):
Поведение сетки более, чем оправдано тем, что Вы в свойстве grid-template-rows указываете размер только для одной (первой) строки. Необходимо, либо явно задать размер для каждой строки, либо воспользоваться repeat(), при известном количестве строк.
Если же количество строк заранее неизвестно, то вместо свойства grid-template-rows используйте grid-auto-rows:
.section {
display: flex;
justify-content: center;
}
.cards__spec_list {
background: none;
border: 1px solid red;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
grid-auto-rows: 350px;
max-width: 1200px;
}
.card__spec {
background: #e6e7ee;
border: 1px solid green;
}
li {
color: #0f5ba7;
}
.card__spec>h2 {
color: #082a4d;
}
i {
color: #082a4d;
}
<section class="section">
<div class="cards__spec_list">
<div class="card__spec">
<h2 style="color: #082a4d">ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i style="color: #082a4d">Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card__spec">
<h2 style="color: #082a4d">ИНОСТРАННЫЕ ЯЗЫКИ</h2>
<div class="store__card">
<strong>Педагогическое образование (с двумя профилями подготовки)</strong>
<br>
<i style="color: #082a4d">Филологический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card__spec">
<h2 style="color: #082a4d">ТЕХНОЛОГИИ СОЦИАЛЬНОЙ РАБОТЫ В РАЗЛИЧНЫХ СФЕРАХ ЖИЗНИДЕЯТЕЛЬНОСТИ</h2>
<div class="store__card">
<strong>Социальная работа</strong>
<br>
<i style="color: #082a4d">Социально-педагогический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">История (ЕГЭ)</li>
<li style="color: #0f5ba7">Обществознание (ЕГЭ) / Литература (ЕГЭ)</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card__spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card__spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
</section>
Как вариант жёстко можно жёстко задать высоту card_spec.
.section {
justify-content: center;
}
.cards_spec_list {
display: grid;
border: 1px solid red;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.card_spec {
background: #e6e7ee;
border: 1px solid green;
height: 350px;
padding: 10px;
}
li {
color: #0f5ba7;
}
.card_spec>h2 {
color: #082a4d;
}
i {
color: #082a4d;
}
<div class="section">
<div class="cards_spec_list">
<div class="card_spec">
<h2 style="color: #082a4d">ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i style="color: #082a4d">Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card_spec">
<h2 style="color: #082a4d">ИНОСТРАННЫЕ ЯЗЫКИ</h2>
<div class="store__card">
<strong>Педагогическое образование (с двумя профилями подготовки)</strong>
<br>
<i style="color: #082a4d">Филологический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Обществознание (ЕГЭ)</li>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">Профессиональное испытание</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card_spec">
<h2 style="color: #082a4d">ТЕХНОЛОГИИ СОЦИАЛЬНОЙ РАБОТЫ В РАЗЛИЧНЫХ СФЕРАХ ЖИЗНИДЕЯТЕЛЬНОСТИ</h2>
<div class="store__card">
<strong>Социальная работа</strong>
<br>
<i style="color: #082a4d">Социально-педагогический факультет</i>
<br>
<p>Вступительные испытания:</p>
<li style="color: #0f5ba7">Русский язык (ЕГЭ)</li>
<li style="color: #0f5ba7">История (ЕГЭ)</li>
<li style="color: #0f5ba7">Обществознание (ЕГЭ) / Литература (ЕГЭ)</li>
<br>
<p>Очная</p>
</div>
</div>
<div class="card_spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
<div class="card_spec">
<h2>ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО</h2>
<div class="store__card">
<strong>Педагогическое образование</strong>
<br>
<i>Факультет социально-педагогический</i>
<br>
<p>Вступительные испытания:</p>
<li>Обществознание (ЕГЭ)</li>
<li>Русский язык (ЕГЭ)</li>
<li>Профессиональное испытание</li>
<br>
<p>Очная / Заочная</p>
</div>
</div>
</div>
Потому что ты свойство перепутал: grid-template-rows задаёт ряды поштучно, а чтобы задать дефаултное значение для незаданных явно надо использовать grid-auto-rows
section {
position: relative;
float: left;
margin: 2em 1em 1em 0;
border: 1px solid red;
display: grid;
gap: .5em;
width: 8em;
}
section::before {
content: attr(style);
position: absolute;
inset: auto 0 100% 0;
margin-bottom: .25em;
}
div {
background: silver;
}
<section style="grid-template-rows: 2em">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>
<section style="grid-template-rows: 2em 2em">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>
<section style="grid-auto-rows: 2em">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>
<section style="grid-auto-rows: 2em 1em">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>