Если вы хотите, чтобы ваш родительский элемент был flex-column
, нет никакого способа добиться того, что вы хотите для мультимедийного устройства <992px, если вы не сгруппируете Flex-элементы 1 и 3 в качестве строки и Flex-элементы 2 и 4 в качестве другой строки,или вы готовы дублировать эти элементы и показывать / скрывать их на основе медиазапросов. </p>
Другой подход заключается в отображении родительского элемента в виде flex-row
и его выборе wrap
, а затем в настройке этих элементов flex'width to 50%!
Чтобы сохранить ваш HTML аккуратным, я собирался использовать утилиту width из Bootstrap для установки ширины, но, к сожалению, классы утилит width не имеют адаптивных вариаций.Поэтому я изменяю макет HTML, добавляю 2 пользовательских класса .parent
и .item
и стилизую их с помощью пользовательских стилей.
HTML
<div class="d-flex bd-highlight parent">
<div class="p-2 bd-highlight order-0 item">
Flex item 1 (LOGO)
</div>
<div class="p-2 bd-highlight order-2 order-lg-1 item">
Flex item 2 (Nav. Menu)
</div>
<div class="p-2 bd-highlight order-1 order-lg-2 item">
Flex item 3 (Search Form)
</div>
<div class="p-2 bd-highlight order-3 item">
Flex item 4 (Acc. Menu)
</div>
</div>
Медиа-устройство <992px </h3> .parent {
flex-flow: row wrap;
}
.parent .item {
width: 50%;
}
Мультимедийное устройство> = 992px
@media (min-width: 992px) {
.parent {
justify-content: space-between;
}
.parent .item {
width: auto;
}
}
скрипка: http://jsfiddle.net/aq9Laaew/273412/