Co się stało z klasami .pull-left i .pull-right w Bootstrap 4?

104

W najnowszej wersji pull-left i pull-right zostały zastąpione przez .pull- {xs, sm, md, lg, xl} - {left, right, none}

Oznacza to, że zamiast pisać proste class="pull-right", będę musiał teraz napisaćclass="pull-md-right pull-xl-right pull-lg-right pull-sm-right pull-xs-right"

Czy można to zrobić w mniej żmudny sposób?

Kevin J.
źródło
5
Wygląda na to, że nie całkiem zrozumiałeś podejście mobile first. .pull-xs-rightspowodowałoby, że obiekt unosiłby się w prawo na wszystkich rozmiarach ekranu, ponieważ css przechodzi w górę również do większych urządzeń. Ps Być może zmieniło się to w nowszych wersjach, ale powinieneś .float-rightraczej używać niż .pull-right.
Phill Healey

Odpowiedzi:

15

W 2016 roku, kiedy pierwotnie zadano to pytanie, odpowiedź brzmiała:

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

Ale teraz akceptowana odpowiedź powinna należeć do Roberta Wenta.

Phillip Senn
źródło
8
.float-{sm,md,lg,xl}-{left,right,none}teraz pływa w lewo / w prawo / brak, podczas gdy .pull-lefti .pull-rightzostały usunięte.
Mirko
1
pull-right powraca, ale gdyby tak było, po prostu użyj css.pull-right{@extend .pull-xs-right;}
Alexis
4
To odpowiedź na to 9/2016. Prawidłowa odpowiedź brzmi teraz Roberta Wenta.
Phillip Senn
9
Wygląda na to, że masz 21 głosów negatywnych za odpowiedź, która jest po prostu przestarzała?
LeonardChallis
@PhillipSenn rozważ zaktualizowanie swojej odpowiedzi, aby nie tracić punktów za bycie członkiem zespołu.
wizulus
213

Zajęcia są float-right float-sm-rightitp.

Zapytania o media są skierowane przede wszystkim do urządzeń mobilnych, więc użycie float-sm-rightwpłynęłoby na małe rozmiary ekranu i wszystko szersze, więc nie ma powodu, aby dodawać klasy dla każdej szerokości. Po prostu użyj najmniejszego ekranu, na który chcesz wpłynąć, lub float-rightdla wszystkich szerokości ekranu.

Oficjalne dokumenty:

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

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

Jeśli aktualizujesz istniejący projekt oparty na wcześniejszej wersji Bootstrap, możesz użyć rozszerzenia sass, aby zastosować reguły do ​​starych nazw klas:

.pull-right {
    @extend .float-right;
}
.pull-left {
    @extend .float-left;
}
Robert Went
źródło
25

Aktualizacja 2018 (od Bootstrap 4.1)

Tak, pull-lefti pull-rightzostały zastąpione przez float-leftiw float-rightBootstrap 4.

Jednak pływaki nie będą działać we wszystkich przypadkach, ponieważ Bootstrap 4 to teraz flexbox .

Aby wyrównać dzieci schematu flexbox w prawo Użyj automatycznego marginesy (tj ml-auto) lub utils schematu flexbox (tj justify-content-end, align-self-enditp ..).

Przykłady

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>

Bułka tarta:

<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

Krata:

<div class="row">
    <div class="col-3">Left</div>
    <div class="col-3 ml-auto">Right</div>
</div>
Zim
źródło
3
ml-auto jest dokładnie tym, czego potrzebowałem w moim pasku nawigacyjnym
ckapilla
16

Zmieniono na float-right float-left float-xx-leftifloat-xx-right

MAMADOU YAYA DIALLO
źródło
6

Jeśli chcesz użyć tych z kolumnami w innej pracy z col-*klasami, możesz użyć order-*klas.

Możesz kontrolować kolejność kolumn za pomocą klas zamówienia. zobacz więcej w dokumentacji Bootstrap 4

Prosty z dokumentów 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
źródło
To zadziałało. Z jakiegoś powodu pull-righti pull-leftnie działaj na kolumnach siatki w4.1
Kunal
1
Zgadza się. Kolejność to sposób, w jaki można odtworzyć wypychanie / ciągnięcie rzędów, ponieważ rzędy używają teraz flexbox.
Gcamara14
5

Te są usuwane.

Użyj float-leftzamiast pull-left. A float-rightzamiast tego pull-right.

Sprawdź dokumentację bootstrap tutaj :

Dodano klasy .float- {sm, md, lg, xl} - {left, right, none} dla responsywnych elementów zmiennoprzecinkowych oraz usunięto .pull-left i .pull-right, ponieważ są one nadmiarowe dla .float-left i .float- dobrze.

Usama
źródło
4

Udało mi się to zrobić z następującymi zajęciami w moim projekcie

d-flex justify-content-end

<div class="col-lg-6 d-flex justify-content-end">
Mallek
źródło
4

Nic innego nie działało dla mnie. Ten zrobił. To może komuś pomóc.

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

Kluczem jest zawinięcie wszystkiego w clearfix div.

Ojas Kale
źródło
Masz 2 elementy w wierszu, więc muszą one znajdować się w elemencie blokowym, aby były pływające w stosunku do ich rodzeństwa.
Robert poszedł
0

bootstrap-4 dodaje klasę float-left lub right do unoszenia

Arsalan Ahmad Khan
źródło
1
Witamy w Stack Overflow! Niestety ten post nie wydaje się stanowić dobrej odpowiedzi na to pytanie. Edytuj swoją odpowiedź i spróbuj podać więcej szczegółów.
sɐunıɔ ןɐ qɐp
-1

Dla kogokolwiek innego i tylko dodatek do Roberta, jeśli twoja nawigacja ma wyświetlaną wartość flex, możesz przesunąć potrzebny element po prawej stronie, dodając go do jego css

{
    margin-left: auto;
}
mbougarne
źródło
Są też zajęcia na ten temat ml-autoimr-auto
Robert Went