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?


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.


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;
}


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>

3
ml-auto est exactement ce dont j'avais besoin dans ma barre de navigation
ckapilla


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>

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.


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">

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é.


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


-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;
}

Il y a aussi des cours pour cela ml-autoetmr-auto
Robert Went
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.