CODEPEN
Справочная информация:
Я экспериментирую с Grid CSS и пытаюсь добраться до этого макета, который в настоящее время реализован в масштабе
Ожидаемая схема размещения
![enter image description here](https://i.stack.imgur.com/t4AJj.png)
Проблема:
На рабочем столе заголовок элемента должен иметь ширину 8 столбцов, и если я не добавлю строки сетки в element-header
и element
, то <div class="element">1</div>
заполнит следующие значения element-header
. Теперь, если я добавлю grid-rows
, мой element
больше не будет переноситься.
Текущий макет (проблема)
![enter image description here](https://i.stack.imgur.com/RhzO9.png)
Вопрос
Как я могу исправить сетку, чтобы она соответствовала скриншоту "ожидаемый макет" выше?
т. е. .element
обернется и начнется во второй строке сетки
Код:
HTML:
<section class="section">
<div class="container">
<div class="samba-grid">
<div class="element-header"><h1>I am a lot of header text that only goes 8 columsn wide</h1></div>
<div class="element">1</div>
<div class="element">2</div>
<div class="element">3</div>
<div class="element">4</div>
</div>
</div>
</section>
CSS:
.section {
width: 100%;
display: block;
background: red;
box-sizing: border-box;
padding: 40px 24px;
@media screen and (min-width: 600px) and (max-width: 1139px) {
background: orange;
padding: 56px 48px;
}
@media screen and (min-width: 1140px) {
padding: 64px 48px;
background: green;
}
}
.container {
margin: 0 auto;
background: rgba(244,244,244, .25);
max-width: 599px;
@media screen and (min-width: 600px) and (max-width: 1139px) {
max-width: 1039px;
background: rgba(244,244,244, .25);
}
@media screen and (min-width: 1140px) {
max-width: 1032px;
background: rgba(244,244,244, .25);
}
}
.samba-grid {
display: grid;
background: inherit;
width: 100%;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: 'auto auto';
grid-gap: 24px;
@media screen and (min-width: 600px) and (max-width: 1139px) {
grid-template-columns: repeat(6, 1fr);
grid-gap: 48px;
}
@media screen and (min-width: 1140px) {
grid-template-columns: repeat(12, 1fr);
grid-gap: 48px;
}
}
h1 {
font-size: 52px;
}
.element-header {
grid-row: 1;
grid-column: span 8; // SET THIS TO "span 12" TO SEE EXPECTED BEHAVIOR
}
.element {
display: grid; // important to do this.
background: rgba(0,0,0,.3);
grid-column: span 3;
grid-row: 2; // REMOVE THIS TO SEE EXPECTED BEHAVIOR
@media screen and (min-width: 600px) and (max-width: 1139px) {
grid-column: span 3;
}
@media screen and (min-width: 1140px) {
grid-column: span 4;
}
}