Was ist mit den Klassen .pull-left und .pull-right in Bootstrap 4 passiert?


103

In der neuesten Version wurden Pull-Left und Pull-Right durch .pull- {xs, sm, md, lg, xl} - {left, right, none} ersetzt.

Das heißt, anstatt ein einfaches class="pull-right"zu schreiben, muss ich jetzt schreibenclass="pull-md-right pull-xl-right pull-lg-right pull-sm-right pull-xs-right"

Gibt es einen weniger langwierigen Weg, dies zu tun?


5
Es sieht so aus, als hätten Sie den mobilen ersten Ansatz nicht ganz verstanden. .pull-xs-rightwürde dazu führen, dass das Objekt auf allen Bildschirmgrößen richtig schwebt, da das CSS auch zu den größeren Geräten nach oben kaskadiert. Ps Vielleicht hat es sich in den neueren Versionen geändert, aber Sie sollten .float-righteher als verwenden .pull-right.
Phill Healey

Antworten:


15

Im Jahr 2016, als diese Frage ursprünglich gestellt wurde, lautete die Antwort:

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

Aber jetzt sollte die akzeptierte Antwort die von Robert Went sein.


8
.float-{sm,md,lg,xl}-{left,right,none}Jetzt schwebt links / rechts / keine während .pull-leftund .pull-rightwurden entfernt.
Mirko

1
Pull-Right ist zurück, aber wenn das der Fall gewesen wäre, benutze einfach CSS.pull-right{@extend .pull-xs-right;}
Alexis

4
Dies wurde 9/2016 beantwortet. Die richtige Antwort ist jetzt die von Robert Went.
Phillip Senn

9
Es scheint rau, dass Sie 21 Stimmen für eine Antwort bekommen, die nur veraltet ist?
LeonardChallis

@PhillipSenn sollten Ihre Antwort aktualisieren, damit Sie keine Punkte verlieren, wenn Sie ein Teamplayer sind.
Wizulus

212

Die Klassen sind float-right float-sm-rightetc.

Die Medienabfragen sind zuerst mobil. Die Verwendung float-sm-rightwirkt sich also auf kleine Bildschirmgrößen und alles, was breiter ist, aus. Es gibt also keinen Grund, für jede Breite eine Klasse hinzuzufügen. Verwenden Sie einfach den kleinsten Bildschirm, den Sie beeinflussen möchten, oder float-rightfür alle Bildschirmbreiten.

Offizielle Dokumente:

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

Aktualisierung: https://getbootstrap.com/docs/4.4/migration/#utilities

Wenn Sie ein vorhandenes Projekt basierend auf einer früheren Version von Bootstrap aktualisieren, können Sie mit sass expand die Regeln auf die alten Klassennamen anwenden:

.pull-right {
    @extend .float-right;
}
.pull-left {
    @extend .float-left;
}


25

Update 2018 (ab Bootstrap 4.1)

Ja, pull-leftund pull-rightwurden durch float-leftund float-rightin Bootstrap 4 ersetzt.

Allerdings schwebt nicht in allen Fällen funktionieren , da Bootstrap 4 jetzt ist Flexbox .

Um align Flexbox Kinder auf der rechten Seite , die Verwendung auto-Margen (dh ml-auto) oder die Flexbox utils (dh: justify-content-end, align-self-end, etc ..).

Beispiele

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>

Semmelbrösel:

<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

Gitter:

<div class="row">
    <div class="col-3">Left</div>
    <div class="col-3 ml-auto">Right</div>
</div>

3
ml-auto ist genau das, was ich in meiner Navigationsleiste brauchte
ckapilla


6

Wenn Sie diese mit Spalten in einer anderen Arbeit mit col-*Klassen verwenden möchten , können Sie order-*Klassen verwenden.

Sie können die Reihenfolge Ihrer Spalten mit Auftragsklassen steuern. Weitere Informationen finden Sie in der Bootstrap 4-Dokumentation

Ein einfaches aus Bootstrap-Dokumenten:

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

Das hat funktioniert. Aus irgendeinem Grund pull-rightund arbeiten pull-leftSie nicht an Rasterspalten in4.1
Kunal

1
Das stimmt. Die Reihenfolge ist die Art und Weise, wie Sie das Push / Pull für Zeilen neu erstellen würden, da die Zeilen jetzt Flexbox verwenden.
Gcamara14

5

Sie werden entfernt.

Verwenden Sie float-leftanstelle von pull-left. Und float-rightstatt pull-right.

Überprüfen Sie die Bootstrap-Dokumentation hier :

.Float- {sm, md, lg, xl} - {left, right, none} Klassen für responsive Floats hinzugefügt und .pull-left und .pull-right entfernt, da sie für .float-left und .float- redundant sind. richtig.


4

Ich konnte dies mit den folgenden Klassen in meinem Projekt tun

d-flex justify-content-end

<div class="col-lg-6 d-flex justify-content-end">

4

Nichts anderes arbeitete für mich. Dieser tat es. Dies könnte jemandem helfen.

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

Alles in Clearfix Div zu verpacken ist der Schlüssel.


Sie haben 2 Inline-Elemente, daher müssen sie sich in einem Blockelement befinden, damit sie in Bezug auf ihre Geschwister verschoben werden können.
Robert ging


-1

Für alle anderen und nur eine Ergänzung zu Robert: Wenn Ihr Navi einen flexiblen Anzeigewert hat, können Sie das benötigte Element nach rechts verschieben, indem Sie es seinem CSS hinzufügen

{
    margin-left: auto;
}

Es gibt auch Klassen dafür ml-autoundmr-auto
Robert ging
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.