J'ai une page Bootstrap comme celle-ci:
<div class="row">
<div class="col-md-6">
A
</div>
<div class="col-md-6">
B
</div>
</div>
Ressemble à:
-----
|A|B|
-----
Donc, si je le regarde sur un appareil mobile, la colonne A est en haut, mais je veux le B en haut ... Est-ce possible? .
Utilisez Ordre des colonnes pour ce faire. Voir également cet article sur le classement des colonnes
col-md-Push-6
"poussera" la colonne à droite 6 et col-md-pull-6
"tirera" la colonne à gauche sur "md" ou une vue plus grande. Sur toutes les vues plus petites, les colonnes seront à nouveau en ordre normal.
Je pense que ce qui rebute les gens, c'est que vous devez mettre B au dessus de A dans votre code HTML. Il peut y avoir une façon différente de faire cela où A peut aller au-dessus de B dans le code HTML, mais je ne sais pas comment le faire ...
<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|
Il est à noter que si vous utilisez des colonnes qui ne sont pas toutes deux égales à 6, le montant du push ne sera pas égal à la taille de la colonne initiale.
Si vous avez 2 colonnes (A et B) et souhaitez que la colonne A soit plus petite et à droite sur les fenêtres "sm" ou supérieures, mais au-dessus d'une fenêtre de mobile (xs), vous utiliserez:
<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>
Sinon, l'alignement des colonnes apparaîtra.
Pour Bootstrap 4, appliquez l’un des éléments suivants sur votre div .row:
.flex-row-reverse
Pour les paramètres réactifs:
.flex-sm-row-reverse
.flex-md-row-reverse
.flex-lg-row-reverse
.flex-xl-row-reverse
Le code ci-dessous fonctionne pour moi
.row {
display: flex;
flex-direction: column-reverse;
}
Dans Bootstrap 4, supposons que vous souhaitiez avoir un ordre pour les grands écrans et un ordre différent pour les écrans plus petits:
<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>
Vous pouvez omettre order-1
et order-2
ci-dessus. Juste ajouté pour plus de clarté. L'ordre par défaut sera l'ordre dans lequel les colonnes apparaissent dans le code HTML.
Pour plus d'informations https://getbootstrap.com/docs/4.1/layout/grid/#reordering
Ceci est maintenant fait (dans Bootstrap v4) en ajoutant des classes order-#.
Voir https://getbootstrap.com/docs/4.1/migration/#grid-system-1
Comme ça:
<div classname='col-md-8 order-2`>...</div>
<div classname='col-md-4 order-1`>...</div>
J'ai utilisé:
.row {
display: flex;
flex-direction: row-reverse;
}
J'ai trois bootstrap 4 colonnes de tailles différentes. Au fur et à mesure que l'écran se réduit, la troisième colonne est masquée, puis lorsque l'écran devient plus petit et que les div sont empilées, l'ordre change afin que la colonne 2 soit en haut.
<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>
J'espère que ça aide. J'ai eu du mal à comprendre cela, mais je suis finalement arrivé à l'aide de ce fil, mais c'était un peu hasardeux.
Dans Bootstrap V4 (Paru le 18 janvier 2018) Vous pouvez utiliser les classes de réorganisation. Infos ici sous l'onglet Réorganisation.
Cela a fonctionné pour moi sur 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>
Bootstrap 4 comprend des classes pour flex. Voir: https://getbootstrap.com/docs/4.3/layout/utilities-for-layout/
<div class="row flex-column-reverse flex-md-row">
<div class="col-sm-10">
Col 1
</div>
<div class="col-sm-2">
Col 2
</div>
</div>