https://codepen.io/leon-yum/pen/XYpgzj?editors=1100
Я пытаюсь убедиться, что на мобильном устройстве (400 пикселей и ниже) моя сетка flexbox придерживается 2 столбцов / ящиков. Однако что бы я ни делал, либо он привязывается к 1 столбцу, либо каждая строка остается в 3 или 4 столбцах соответственно.
Ожидается при ширине 400 пикселей:
Полученные результаты:
HTML
<div class = "flex-grid-thirds">
<div class = "col">This little piggy went to market.</div>
<div class = "col">This little piggy stayed home.</div>
<div class = "col">This little piggy had roast beef.</div>
</div>
<div class = "flex-grid-four">
<div class = "col">This little piggy went to market.</div>
<div class = "col">This little piggy stayed home.</div>
<div class = "col">This little piggy had roast beef.</div>
<div class = "col">This little piggy had roast beef.</div>
</div>
CSS
.flex-grid-thirds,
.flex-grid-four {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}
.flex-grid-thirds .col {
width: 32%;
}
.flex-grid-four .col {
width: 24%;
}
@media (max-width: 400px) {
.flex-grid-thirds,
.flex-grid-four {
.col {
width: 40%;
}
}
}
* {
box-sizing: border-box;
}
body {
padding: 20px;
}
.flex-grid {
margin: 0 0 20px 0;
}
.col {
background: salmon;
padding: 20px;
}






Вот рабочее решение: https://codepen.io/anon/pen/vrgZVa?editors=1100.
Все, что вам нужно, это просто поместить все элементы в один элемент оболочки (теперь у вас есть 2 элемента) и присвоить этой оболочке свойство flex-wrap: wrap. И еще одно, что нужно сделать: указать ширину вашим элементам (желательно проценты), и если вы дадите им width: 50%, будет 2 столбца, если width: 33% - 3 столбца и так далее. Я не касался полей и такой мелочи, просто продемонстрирую, о чем вы просили:
.flex-grid {
display: flex;
justify-content: space-between;
margin-bottom: 20px;
flex-wrap: wrap;
}
.flex-grid-thirds .col {
width: 32%;
}
.flex-grid-four .col {
width: 24%;
}
@media (max-width: 400px) {
.flex-grid {
.col {
width: 50%;
}
}
}
* {
box-sizing: border-box;
}
body {
padding: 20px;
}
.flex-grid {
margin: 0 0 20px 0;
}
.col {
background: salmon;
padding: 20px;
}<div class = "flex-grid">
<div class = "col">This little piggy went to market.</div>
<div class = "col">This little piggy stayed home.</div>
<div class = "col">This little piggy had roast beef.</div>
<div class = "col">This little piggy went to market.</div>
<div class = "col">This little piggy stayed home.</div>
<div class = "col">This little piggy had roast beef.</div>
<div class = "col">This little piggy had roast beef.</div>
</div>
разметка должна быть такой?