Класс заказа Bootstrap 4

У меня вопрос по переупорядочению bootstrap 4.1. По документации:

Reordering

Use .order- classes for controlling the visual order of your content. These classes are responsive, so you can set the order by breakpoint (e.g., .order-1.order-md-2). Includes support for 1 through 12 across all five grid tiers.

Я попытался установить переупорядочение только на малых и средних экранах, используя классы .order, как показано в документации, но он изменит порядок содержимого также на более крупных точках останова, я делаю это неправильно?

<div class = "container-fluid">
    <div class = "row">
        <div class = "col-sm-12 col-lg-4 order-sm-2">
        <!-- some contents here -->
        </div>
        <div class = "col-sm-12 col-lg-8 order-sm-1">
        <!-- some contents here -->
        </div>
    </div>
</div>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
10
0
12 608
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы пробовали сделать порядок-1, это устанавливает значение по умолчанию для больших экранов

<div class = "col-sm-12 col-lg-4 order-1 order-sm-2">
    <!-- some contents here -->
</div>
<div class = "col-sm-12 col-lg-8 order-2 order-sm-1">
    <!-- some contents here -->
</div>

Источник: Порядок столбцов в Bootstrap 4

Спасибо, я пробовал, но столбцы будут упорядочены неправильно. Я нашел много людей с той же проблемой, но этот вопрос решил мою проблему. stackoverflow.com/questions/48598915/…

user9741470 30.06.2018 15:53

А, понятно. Таким образом, он проигнорировал бы атрибут order-2.

Francis Albert Calas 30.06.2018 15:58

Да, я исправил ваш ответ, это рабочее решение, которое я принял. Спасибо за поддержку!

user9741470 30.06.2018 16:05

@ user9741470 Вы не можете / не можете редактировать ответ только для того, чтобы сделать его правильным и дать ему принятый ответ. И еще кое-что, что у вас было в вашем фрагменте order-sm, а не order, так почему же вы отредактировали этот ответ на этот вопрос, а затем приняли ?. Кстати, Have you tried doing order-1, this sets the default for larger screens не прав. потому что order предназначен для сверхмалых экранов и выше.

dippas 30.06.2018 16:14

Ох, я понял. Просто пытаюсь помочь.

Francis Albert Calas 30.06.2018 16:23
Ответ принят как подходящий

Вам нужно переупорядочить в более крупных точках останова, потому что бутстрап - это сначала мобильный подход (это означает, что он использует min-width в медиа-запросах), поэтому при использовании только sm он будет применять свойства из sm и выше (включая md и lg).

<link href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel = "stylesheet" />
<div class = "container-fluid">
  <div class = "row">
    <div class = "col-sm-12 col-lg-4 order-sm-2 order-lg-1">
      mobile 2nd and then desktop 1st
    </div>
    <div class = "col-sm-12 col-lg-8 order-sm-1 order-lg-2">
      mobile 1st and then desktop 2st
    </div>
  </div>
</div>

Еще одна вещь, которую нужно знать о order в BS4, заключается в том, что вы можете использовать order-X-first, order-X-last и order-X-0, поэтому вот фрагмент с этими классами. Вы можете увидеть их в этом отвечать

<link href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel = "stylesheet" />
<div class = "container-fluid">
  <div class = "row">
    <div class = "col-sm-12 col-lg-4 order-sm-last order-lg-first">
      mobile 2nd and then desktop 1st
    </div>
    <div class = "col-sm-12 col-lg-8 order-sm-first order-lg-last">
      mobile 1st and then desktop 2st
    </div>
  </div>
</div>

Чтобы уточнить, он будет отображать порядок как 2, а затем 1 только на небольших экранах, верно? А с маленьких экранов и выше отображает 1, а потом 2?

Rohan Mayya 30.06.2018 15:52

просто переключите full page во фрагменте, чтобы увидеть результат, но да

dippas 30.06.2018 15:53

Это решение, которое я принял, я не рассматривал первый мобильный подход фреймворка boostrap, поэтому я неправильно понял, как правильно использовать утилиту класса .order.

user9741470 30.06.2018 16:00

Я пробовал разные опубликованные решения. Ваш ответ является наиболее правильным после обновления. Проблема, с которой я столкнулся, заключалась в неправильном использовании класса .order. Я попытался исправить это с помощью .order-1 order-lg-2, и это сработало, но я не слишком разбираюсь в переупорядочении столбцов в booststrap, поэтому я предполагаю, как вы сказали в комментарии, что мой путь неправильный.

user9741470 30.06.2018 16:23

вам нужно понимать порядок flexbox, на котором основан порядок начальной загрузки

dippas 30.06.2018 16:25

Ваша формулировка меня смутила, но ваши примеры очень четкие, +1.

orangecaterpillar 18.10.2020 19:01

Я тоже столкнулся с некоторыми проблемами. Вот следующий код, который заставил меня работать:

 <div class = "container-fluid">
            <div class = "row">
                <div class = "col-sm-6 order-sm-2 order-1">
                <!-- some contents here -->Content1
                </div>
                <div class = "col-sm-6 order-sm-1 order-2">
                <!-- some contents here -->Content2
             </div>
       </div>
  </div>

Обновлено: удален класс .order-md из соответствующих столбцов.

здесь вам не нужен order-md, и он не отвечает на вопрос OP, учитывая, что OP хочет начать с sm и изменить на lg

dippas 30.06.2018 16:21

Да я в курсе. Пытался перебрать решение, но забыл очистить. Спасибо.

Rohan Mayya 30.06.2018 16:23

Это ожидаемое поведение Bootstrap по умолчанию.

Короче говоря, все суффиксы точек останова начальной загрузки (-sm-md ...) работают от этой точки останова вверх.

Таким образом, если вы установите col-sm-6, это означает, что размер вашего столбца будет наполовину меньше размера строки из точки останова sm и md и lg, если вы не перезапишите его (например, col-md-2).

Все возвращается к здесь (с использованием минимальной ширины в медиа-запросах)

Другие вопросы по теме