Qu'est-il arrivé aux classes .pull-left et .pull-right dans Bootstrap 4?

104

Dans la dernière version, le pull-left et le pull-right ont été remplacés par .pull- {xs, sm, md, lg, xl} - {left, right, none}

Cela signifie qu'au lieu d'écrire un simple class="pull-right", je vais maintenant devoir écrireclass="pull-md-right pull-xl-right pull-lg-right pull-sm-right pull-xs-right"

Existe-t-il un moyen moins fastidieux de le faire?

Kevin J
la source
5
Il semble que vous n'ayez pas tout à fait compris l'approche mobile first. .pull-xs-rightferait flotter l'objet directement sur toutes les tailles d'écran, puisque le css descend en cascade vers les appareils plus grands aussi. Ps Peut-être que cela a changé dans les versions les plus récentes, mais vous devriez utiliser .float-rightplutôt que .pull-right.
Phill Healey

Réponses:

15

En 2016, lorsque cette question a été initialement posée, la réponse était:

$('.pull-right').addClass('pull-xs-right').removeClass('pull-right')

Mais maintenant, la réponse acceptée devrait être celle de Robert Went.

Phillip Senn
la source
8
.float-{sm,md,lg,xl}-{left,right,none}flotte maintenant à gauche / droite / aucun tandis que .pull-leftet .pull-rightont été supprimés.
Mirko
1
pull-right est de retour, mais si cela avait été le cas, utilisez simplement le css.pull-right{@extend .pull-xs-right;}
Alexis
4
Cela a été répondu 9/2016. La bonne réponse est maintenant celle de Robert Went.
Phillip Senn
9
Il semble difficile d'obtenir 21 votes pour une réponse qui est simplement obsolète?
LeonardChallis
@PhillipSenn envisage de mettre à jour votre réponse afin de ne pas perdre de points en tant que joueur d'équipe.
wizulus
213

Les classes sont float-right float-sm-rightetc.

Les requêtes multimédias sont axées sur le mobile, donc l'utilisation float-sm-rightaffecterait les petites tailles d'écran et tout ce qui est plus large, il n'y a donc aucune raison d'ajouter une classe pour chaque largeur. Utilisez simplement le plus petit écran que vous souhaitez affecter ou float-rightpour toutes les largeurs d'écran.

Documents officiels:

Classes: https://getbootstrap.com/docs/4.4/utilities/float/

Mise à jour: https://getbootstrap.com/docs/4.4/migration/#utilities

Si vous mettez à jour un projet existant basé sur une version antérieure de Bootstrap, vous pouvez utiliser sass extend pour appliquer les règles aux anciens noms de classe:

.pull-right {
    @extend .float-right;
}
.pull-left {
    @extend .float-left;
}
Robert est allé
la source
25

Mise à jour 2018 (à partir de Bootstrap 4.1)

Oui, pull-leftet pull-rightont été remplacés par float-leftet float-rightdans Bootstrap 4.

Cependant, les flottants ne fonctionneront pas dans tous les cas puisque Bootstrap 4 est désormais flexbox .

Pour aligner les enfants ēno à droite, utiliser les marges automatiques (ex: ml-auto) ou les utils ēno (ex: justify-content-end, align-self-end, etc ..).

Exemples

Navs:

<ul class="nav">
   <li><a href class="nav-link">Link</a></li>
   <li><a href class="nav-link">Link</a></li>
   <li class="ml-auto"><a href class="nav-link">Right</a></li>
</ul>

Chapelure:

<ul class="breadcrumb">
    <li><a href="https://stackoverflow.com/">Home</a></li>
    <li class="active"><a href="https://stackoverflow.com/">Link</a></li>
    <li class="ml-auto"><a href="https://stackoverflow.com/">Right</a></li>
</ul>

https://www.codeply.com/go/6ITgrV7pvL

La grille:

<div class="row">
    <div class="col-3">Left</div>
    <div class="col-3 ml-auto">Right</div>
</div>
Zim
la source
3
ml-auto est exactement ce dont j'avais besoin dans ma barre de navigation
ckapilla
16

Changé en float-right float-left float-xx-leftetfloat-xx-right

MAMADOU YAYA DIALLO
la source
6

Si vous souhaitez utiliser ceux avec des colonnes dans un autre travail avec des col-*classes, vous pouvez utiliser des order-*classes.

Vous pouvez contrôler l'ordre de vos colonnes avec des classes d'ordre. en savoir plus dans la documentation Bootstrap 4

Un simple de la documentation bootstrap:

<div class="container">
  <div class="row">
    <div class="col">
      First, but unordered
    </div>
    <div class="col order-12">
      Second, but last
    </div>
    <div class="col order-1">
      Third, but first
    </div>
  </div>
</div>
Behnam Azimi
la source
Cela a fonctionné. Pour une raison quelconque pull-rightet pull-leftne fonctionne pas sur les colonnes de la grille dans4.1
Kunal
1
C'est vrai. L'ordre est la façon dont vous recréez le push / pull sur les lignes puisque les lignes utilisent maintenant flexbox.
Gcamara14
5

Ils sont supprimés.

Utilisez à la float-leftplace de pull-left. Et float-rightau lieu de pull-right.

Consultez la documentation bootstrap ici :

Ajout des classes .float- {sm, md, lg, xl} - {left, right, none} pour les flottants réactifs et supprimés .pull-left et .pull-right car ils sont redondants avec .float-left et .float- droite.

Oussama
la source
4

J'ai pu le faire avec les classes suivantes dans mon projet

d-flex justify-content-end

<div class="col-lg-6 d-flex justify-content-end">
Mallek
la source
4

Rien d'autre ne fonctionnait pour moi. Celui-ci l'a fait. Cela pourrait aider quelqu'un.

<div class="clearfix">
  <span class="float-left">Float left</span>
  <span class="float-right">Float right</span>
</div>

Tout emballer dans clearfix div est la clé.

Ojas Kale
la source
Vous avez 2 éléments en ligne, ils doivent donc être dans un élément de bloc pour qu'ils soient flottants par rapport à leurs frères et sœurs.
Robert est allé le
0

bootstrap-4 ajoute la classe float-left ou right pour le flottement

Arsalan Ahmad Khan
la source
1
Bienvenue dans Stack Overflow! Malheureusement, cet article ne semble pas fournir une réponse de qualité à la question. Veuillez modifier votre réponse et essayer de fournir plus de détails.
sɐunıɔ ןɐ qɐp
-1

Pour n'importe qui d'autre et juste un ajout à Robert, si votre nav a une valeur d'affichage flex, vous pouvez faire flotter l'élément dont vous avez besoin vers la droite, en l'ajoutant à son css

{
    margin-left: auto;
}
Mbougarne
la source
Il y a aussi des cours pour cela ml-autoetmr-auto
Robert Went