Bootstrap colonna destra in alto sulla vista mobile


171

Ho una pagina Bootstrap come questa:

<div class="row">
    <div class="col-md-6">
        A
    </div>
    <div class="col-md-6">
       B
    </div>
</div>

Sembra:

-----
|A|B|
-----

Quindi, se lo guardo su un dispositivo mobile, la colonna A è in alto, ma voglio la B in alto. È possibile? L'ho provato con una spinta, ma non ha funzionato.


2
Per Bootstrap 4 vedi la risposta di salmanhijazi
schnawel007,

Risposte:


268

Utilizzare l' ordinamento di colonna per ottenere questo risultato.

col-md-push-6"spingerà" la colonna verso destra 6 e col-md-pull-6"tirerà" la colonna verso sinistra su "md" o maggiori porte di visualizzazione. Su qualsiasi porta di visualizzazione più piccola le colonne saranno di nuovo in ordine normale.

Penso che ciò che scoraggia le persone, è che devi mettere B sopra A nel tuo HTML . Potrebbe esserci un modo diverso per farlo in cui A può andare sopra B in HTML, ma non sono sicuro di come farlo ...

DEMO

<div class="row">
  <div class="col-md-6 col-md-push-6">B</div>
  <div class="col-md-6 col-md-pull-6">A</div>
</div>

view-port> = md

|A|B|

view-port <md

|B|
|A|

6
@JackTheKnife Dai un'occhiata all'altra risposta a questa domanda ... spingi o tiri una colonna per la larghezza dell'altra colonna.
Schmalzy,

1
@Schmalzy O sì - l'altra risposta ha una spiegazione migliore. Anche trovato utile: scotch.io/tutorials/reorder-css-columns-using-bootstrap
JackTheKnife

1
Problemi con tre colonne, in cui l'ordine dello stack deve essere al centro, a sinistra, a destra.
Goose,

78

Vale la pena notare che se si utilizzano colonne che non sono entrambe uguali a 6, la quantità di push non sarà uguale alla dimensione della colonna iniziale.

Se hai 2 colonne (A e B) e desideri che la colonna A sia più piccola e a destra nelle finestre "sm" o maggiori, ma in cima a una finestra mobile (xs), utilizzeresti quanto segue:

<div class="row">
    <div class="col-sm-4 col-sm-push-8">A</div>
    <div class="col-sm-8 col-sm-pull-4">B</div>
</div>

Altrimenti, l'allineamento delle colonne apparirà fuori.


Come posso usarlo quando ho impostato l'offset<div class="col-md-4 col-md-offset-1"></div><div class="col-md-6 col-md-offset-1"></div>
Muddasir Abbas,

29

Direzione Flexbox

Per Bootstrap 4, applica una delle seguenti opzioni al tuo div .row:

.flex-row-reverse

Per impostazioni reattive:

.flex-sm-row-reverse
.flex-md-row-reverse
.flex-lg-row-reverse
.flex-xl-row-reverse

qualche idea su come ottenere lo stesso in vuetify?
Rakibul Haq,

11

In Bootstrap 4, supponiamo che tu voglia avere un ordine per schermi di grandi dimensioni e un ordine diverso per schermi più piccoli:

<div class="container">
  <div class="row">
    <div class="col-6 order-1 order-lg-2">
      This column will be ordered second on large to extra large screens
    </div>
    <div class="col-6 order-2 order-lg-1">
      This column will be ordered first on large to extra large screens
    </div>
  </div>
</div>

Puoi omettere order-1e order-2sopra. Appena aggiunto per chiarezza. L'ordine predefinito sarà l'ordine di visualizzazione delle colonne nell'html.

Per maggiori informazioni https://getbootstrap.com/docs/4.1/layout/grid/#reordering


10

Il codice seguente funziona per me

.row {
    display: flex;
    flex-direction: column-reverse;
}


4

Ho tre bootstrap 4 colonne di diverse dimensioni. Man mano che lo schermo si riduce, la terza colonna viene nascosta, quindi quando lo schermo diventa più piccolo e i div vengono impilati, l'ordine cambia in modo che la colonna 2 sia in alto.

    <div class="col-xs-12 col-sm-4 col-md-3 order-2 order-sm-1">
        <h3>LEFT HAND SECTION</h3>
        <p>For news, links photos or comments.</p>
    </div>
    <div class="col-xs-12 col-sm-8 col-md-5 order-1 order-sm-2">
        <h3>MAIN SECTION</h3>
        <p>The main content for the page.</p>
    </div>
    <div class="col-xs-12 col-md-4 d-none d-md-block order-last">
        <h3>BLANK SECTION</h3>
        <p>Will usually just be blank.</p>
    </div>

Spero che aiuti. Ho trovato difficile capire questo, ma finalmente ci sono arrivato con l'aiuto di questo thread, ma è stato un po 'incostante.


3

Questo ha funzionato per me su Bootstrap 4:

<div class="container-fluid">
  <div class="row">
    <div class="col-md-4 order-md-last">
      <%= render 'form'%>
    </div>
    <div class="col-md-8 order-md-first">
      CONTENT
    </div>
  </div>
</div>

2

Ero solito:

.row {
   display: flex;
   flex-direction: row-reverse;
}


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.