Для свойства гибкого order
работать, все гибкие элементы должны быть братьями и сестрами в том же контейнере.
В вашем случае у вас есть один гибкий контейнер (.flex
) с двумя предметами изгиба (.row
).
один гибкий элемент содержит А и В. Другой гибкий элемент имеет С и D.
Под текущей настройки, только гибкие элементы (.row
) может быть повторно заказан с order
собственности.
Фактически, A, B, C, D не являются даже гибкими элементами, поскольку их родительский элемент не является гибким контейнером. Поэтому свойства flex не будут применяться к ним.
Для того, чтобы ваш макет работал по своему усмотрению, вам нужно будет поместить все четыре элемента в один и тот же контейнер гибких дисков, чтобы они существовали как элементы гибкого брата.
Пример:
HTML
<div class="container">
<div class="col-lg-8 col-xs-12 a"> <!-- flex item #1 -->
<div class="thing">
Thing A
</div>
</div>
<div class="col-lg-4 col-xs-12 b"> <!-- flex item #2 -->
<div class="thing">
Thing B
</div>
</div>
<div class="col-lg-8 col-xs-12 c"> <!-- flex item #3 -->
<div class="thing">
Thing C
</div>
</div>
<div class="col-lg-4 col-xs-12 d"> <!-- flex item #4 -->
<div class="thing">
Thing D
</div>
</div>
CSS
.container {
display: flex;
flex-wrap: wrap;
}
.col-xs-12 {
display: flex;
flex: 0 0 50%;
}
.thing {
background-color: #eaeaea;
flex: 1;
margin: 10px;
padding: 15px;
}
@media screen and (max-width: 800px) {
.a { order: 1; }
.b { order: 2; }
.c { order: 4; }
.d { order: 3; }
.b > div { background-color: red; }
}
DEMO
Это делает больше смысла в настоящее время. Что, если бы я хотел, чтобы вещь b и вещь d были в одной строке, является ли flexbox правильным подходом для этого или будет ли загрузочный вариант push/pull classes лучшим вариантом? – Neil
Flexbox будет работать нормально. Это свойство «flex-basis», управляющее шириной каждого элемента flex. В приведенном выше коде указано в сокращении как «flex: 0 0 50%», что означает: * не растут *, * не сжимаются *, * имеют ширину 50% *. Это позволяет использовать 2 элемента в строке. Просто измените «flex-basis» в медиа-запросе, чтобы внести коррективы: https://jsfiddle.net/1xje7u1d/1/ –