Заказать столбцы через Bootstrap4
У меня есть 3 колонки, которые я хочу заказать по-разному на рабочем столе и на мобильном телефоне. В настоящее время моя пташка выглядит так:
<div class="row">
<div class="col-xs-3 col-md-6">
1
</div>
<div class="col-xs-3 col-md-6">
2
</div>
<div class="col-xs-6 col-md-12">
3
</div>
</div>
Ответы
Ответ 1
2018 - Пересмотр этого вопроса с последней Bootstrap 4.
Классы order-first
упорядочения теперь являются order-first
, order-last
и order-0
- order-12
Бутстраповские 4 защелкивающихся классы теперь push-{viewport}-{units}
и pull-{viewport}-{units}
и xs-
инфиксным были удалены. Чтобы получить желаемую раскладку 1-3-2 на мобильном устройстве /xs, необходимо: Bootstrap 4 push-pull демо (работает только до 4.0 beta)
Бутстрап 4. 1+
Так как Bootstrap 4 является flexbox, легко изменить порядок столбцов. Колы могут быть заказаны от order-1
до order-12
, соответственно, например, order-md-12 order-2
(последний на md
, второй на xs
) относительно родительского .row
.
<div class="container">
<div class="row">
<div class="col-3 col-md-6">
<div class="card card-body">1</div>
</div>
<div class="col-6 col-md-12 order-2 order-md-12">
<div class="card card-body">3</div>
</div>
<div class="col-3 col-md-6 order-3">
<div class="card card-body">2</div>
</div>
</div>
</div>
Демонстрация: изменение порядка с использованием классов order-*
Рабочий стол (большие экраны): ![enter image description here]()
Мобильный (меньшие экраны): ![enter image description here]()
Также возможно изменить порядок столбцов, используя направление flexbox...
<div class="container">
<div class="row flex-column-reverse flex-md-row">
<div class="col-md-8">
2
</div>
<div class="col-md-4">
1st on mobile
</div>
</div>
</div>
Демо: Bootstrap 4.1 Изменить порядок с направлением Flexbox
Демоверсии старой версии
демо - альфа 6
демо - бета (3)
Посмотрите больше Bootstrap 4. 1+ упорядочение демонстраций
Связанные с:
Упорядочивание колонок в Bootstrap 4 с push/pull и col-md-12
Bootstrap 4 меняет порядок столбцов ACB ABC
Ответ 2
Это также может быть достигнуто с помощью свойства "Заказ" CSS и медиа-запроса.
Что-то вроде этого:
@media only screen and (max-width: 768px) {
#first {
order: 2;
}
#second {
order: 4;
}
#third {
order: 1;
}
#fourth {
order: 3;
}
}
Ссылка CodePen: https://codepen.io/preston206/pen/EwrXqm
Ответ 3
Я использую Bootstrap 3, поэтому я не знаю, есть ли более простой способ сделать это Bootstrap 4, но этот css должен работать для вас:
.pull-right-xs {
float: right;
}
@media (min-width: 768px) {
.pull-right-xs {
float: left;
}
}
... и добавьте класс во второй столбец:
<div class="row">
<div class="col-xs-3 col-md-6">
1
</div>
<div class="col-xs-3 col-md-6 pull-right-xs">
2
</div>
<div class="col-xs-6 col-md-12">
3
</div>
</div>
EDIT:
Ох... похоже, что то, что было написано выше, - это класс. pull-xs-right в Bootstrap 4: X Просто добавьте его во второй столбец, и он должен работать отлично.
Ответ 4
даже это будет работать:
<div class="container">
<div class="row">
<div class="col-4 col-sm-4 col-md-6 order-1">
1
</div>
<div class="col-4 col-sm-4 col-md-6 order-3">
2
</div>
<div class="col-4 col-sm-4 col-md-12 order-2">
3
</div>
</div>
</div>
Ответ 5
Так как упорядочение столбцов не работает в бета-версии Bootstrap 4, как описано в коде, представленном в повторном ответе выше, вам нужно будет использовать следующее (как указано в кодексе 4 Flexbox demo - alpha/beta ссылки, которые были предоставлены в ответе).
<div class="container">
<div class="row">
<div class="col-3 col-md-6">
<div class="card card-block">1</div>
</div>
<div class="col-6 col-md-12 flex-md-last">
<div class="card card-block">3</div>
</div>
<div class="col-3 col-md-6 ">
<div class="card card-block">2</div>
</div>
</div>
Обратите внимание, однако, что демо-бета-версия "Flexbox" переходит в альфа-кодовую базу, а изменение кодовой базы до бета-версии (и ее запуск) приводит к тому, что divs отображаются некорректно в одном столбце, но это выглядит как codeply проблема, поскольку вырезание и вставка кода из кодовых работает, как описано.
Ответ 6
Вы можете сделать два разных контейнера с мобильным ордером и скрыть на рабочем столе, другой с настольным заказом и скрыть на экране мобильного телефона