Мне нужна помощь с отзывчивым html.
У меня есть макет flexbox с двумя столбцами. Каждый столбец содержит два элемента различной высоты.
На мобильном устройстве я задаю flex-direction для столбца, поэтому он разбивается на один столбец:
Но, как вы уже догадались, я хочу, чтобы ордер был ABCD. Я понимаю, что, вероятно, я не могу сделать это с моими текущими настройками, потому что AFAIK вы не можете заказать под-детей. Но каковы мои варианты получения желаемого результата?
Я мог бы изменить порядок вещей с помощью javascript, но я бы предпочел чистый CSS подход, если это возможно.
Может ли это быть достигнуты? Нужно ли мне CSS гриды для этого?
Я добавил фрагмент, чтобы проиллюстрировать проблему. Также на codepen: https://codepen.io/Mudloop/pen/PowrKPV
(для простоты он не имеет медиа-запросов, только тот же html дважды с другим классом).
* { box-sizing: border-box; }
body { background-color: #444; color: white; font-family: sans-serif; max-width:650px; }
.normal {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-start;
margin: 20px;
}
.normal > div {
color: white;
width: calc(50%);
}
.normal > div > div {
background-color: #333;
padding: 10px;
margin: 10px;
}
.mobile {
display: flex;
flex-direction: column;
flex-wrap: wrap;
align-items: flex-start;
margin:20px;
}
.mobile > div {
color: white;
width: 100%;
}
.mobile > div > div {
background-color: #333;
padding: 10px;
margin: 10px;
}
<body>
Desktop
<div class="normal">
<div>
<div>A<br></div>
<div>C<br><br><br><br><br></div>
</div>
<div>
<div>B<br><br></div>
<div>D<br><br><br></div>
</div>
</div>
Mobile
<div class="mobile">
<div>
<div>A<br></div>
<div>C<br><br><br><br><br></div>
</div>
<div>
<div>B<br><br></div>
<div>D<br><br><br></div>
</div>
</div>
</body>