Migracja do v4
Bootstrap 4 to główna przeróbka całego projektu. Poniżej podsumowano najważniejsze zmiany, a następnie bardziej szczegółowe zmiany w odpowiednich komponentach.
Stabilne zmiany
Przechodząc z wersji Beta 3 do naszej stabilnej wersji v4.x, nie ma żadnych przełomowych zmian, ale jest kilka znaczących zmian.
Druk
-
Naprawiono zepsute narzędzia drukowania. Wcześniej użycie
.d-print-*klasy nieoczekiwanie unieważniało każdą inną.d-*klasę. Teraz pasują do naszych innych narzędzi wyświetlania i dotyczą tylko tego nośnika (@media print). -
Rozszerzono dostępne narzędzia do wyświetlania wydruku, aby pasowały do innych narzędzi. Beta 3 i starsze miały tylko
block,inline-block,inlineinone. Dodano stabilną wersję 4flex,inline-flex,table,table-rowitable-cell. -
Naprawiono renderowanie podglądu wydruku w przeglądarkach z nowymi stylami wydruku, które określają
@pagesize.
Zmiany w wersji beta 3
Podczas gdy Beta 2 widziała większość naszych przełomowych zmian w fazie beta, wciąż mamy kilka, które wymagały rozwiązania w wydaniu Beta 3. Te zmiany obowiązują w przypadku aktualizacji do wersji Beta 3 z wersji Beta 2 lub dowolnej starszej wersji Bootstrap.
Różnorodny
- Usunięto nieużywaną
$thumbnail-transitionzmienną. Niczego nie zmienialiśmy, więc był to tylko dodatkowy kod. - Pakiet npm nie zawiera już żadnych plików innych niż nasze pliki źródłowe i dystrybucyjne; jeśli polegałeś na nich i uruchamiałeś nasze skrypty za pośrednictwem
node_modulesfolderu, powinieneś dostosować swój przepływ pracy.
Formularze
-
Przepisano zarówno niestandardowe, jak i domyślne pola wyboru i radia. Teraz oba mają dopasowaną strukturę HTML (zewnętrzna
<div>z siostrzanym<input>i<label>) i te same style układu (ułożone domyślnie, wbudowane z klasą modyfikatora). Dzięki temu możemy stylizować etykietę w oparciu o stan danych wejściowych, upraszczając obsługędisabledatrybutu (wcześniej wymagającą klasy nadrzędnej) i lepiej obsługując naszą walidację formularza.W ramach tego zmieniliśmy CSS do zarządzania wieloma
background-images w polach wyboru formularzy niestandardowych i radiach. Wcześniej usunięty.custom-control-indicatorelement miał kolor tła, gradient i ikonę SVG. Dostosowanie gradientu tła oznaczało zastąpienie ich wszystkich za każdym razem, gdy trzeba było zmienić tylko jeden. Teraz mamy.custom-control-label::beforedo wypełnienia i gradientu oraz.custom-control-label::afterobsługuje ikonę.Aby utworzyć czek niestandardowy, dodaj
.custom-control-inline. -
Zaktualizowany selektor dla grup przycisków opartych na danych wejściowych. Zamiast
[data-toggle="buttons"] { }stylu i zachowania używamydataatrybutu tylko dla zachowań JS i polegamy na nowej.btn-group-toggleklasie do stylizacji. -
Usunięto
.col-form-legendna rzecz nieco ulepszonej.col-form-label. W ten sposób można z łatwością używać na.col-form-label-smelementach ..col-form-label-lg<legend> -
Niestandardowe dane wejściowe plików otrzymały zmianę w swojej
$custom-file-textzmiennej Sass. Nie jest to już zagnieżdżona mapa Sassa, a teraz zasila tylko jeden ciąg —Browseprzycisk, ponieważ jest to teraz jedyny pseudo-element generowany z naszego Sassa. TekstChoose filepochodzi teraz z.custom-file-label.
Grupy wejściowe
-
Dodatki grupy danych wejściowych są teraz zależne od ich położenia względem danych wejściowych. Zrezygnowaliśmy
.input-group-addoni.input-group-btndla dwóch nowych klas.input-group-prependi.input-group-append. Musisz teraz wyraźnie użyć dodatku lub przedrostka, upraszczając wiele z naszego CSS. W dodawaniu lub dołączaniu umieść przyciski tak, jak mogłyby istnieć gdziekolwiek indziej, ale zawijaj tekst w.input-group-text. -
Style walidacji są teraz obsługiwane, podobnie jak wiele danych wejściowych (chociaż można sprawdzać tylko jedno dane wejściowe na grupę).
-
Klasy rozmiarów muszą znajdować się w elemencie nadrzędnym
.input-group, a nie w poszczególnych elementach formularza.
Zmiany w wersji beta 2
W fazie beta nie chcemy wprowadzać przełomowych zmian. Jednak nie zawsze wszystko idzie zgodnie z planem. Poniżej znajdują się przełomowe zmiany, o których należy pamiętać przy przejściu z wersji Beta 1 do Beta 2.
Łamanie
- Usunięto
$badge-colorzmienną i jej wykorzystanie w dniu.badge. Używamy funkcji kontrastu kolorów, aby wybrać nacolorpodstawiebackground-color, więc zmienna jest niepotrzebna. - Zmieniono nazwę
grayscale()funkcji,gray()aby uniknąć konfliktu z natywnymgrayscalefiltrem CSS. - Zmieniono nazwy
.table-inverse,.thead-inverse, oraz.thead-defaultna.*-darki.*-light, zgodnie z naszymi schematami kolorów używanymi w innych miejscach. - Responsywne tabele generują teraz klasy dla każdego punktu przerwania siatki. To różni się od wersji Beta 1, ponieważ
.table-responsiveużywany przez Ciebie jest bardziej podobny do.table-responsive-md. Możesz teraz użyć.table-responsivelub.table-responsive-{sm,md,lg,xl}w razie potrzeby. - Porzucono obsługę Bowera, ponieważ menedżer pakietów został przestarzały dla alternatyw (np. Yarn lub npm). Zobacz altanka/altana#2298 po szczegóły.
- Bootstrap nadal wymaga jQuery 1.9.1 lub nowszej, ale zaleca się używanie wersji 3.x, ponieważ obsługiwane przeglądarki v3.x to te, które obsługuje Bootstrap, a v3.x zawiera pewne poprawki bezpieczeństwa.
- Usunięto nieużywaną
.form-control-labelklasę. Jeśli skorzystałeś z tej klasy, była to duplikat.col-form-labelklasy, która pionowo wyśrodkowała a<label>z powiązanymi danymi wejściowymi w układach formularzy poziomych. - Zmieniono
color-yiqmixin, który zawierałcolorwłaściwość, na funkcję zwracającą wartość, co pozwala na użycie jej dla dowolnej właściwości CSS. Na przykład zamiastcolor-yiq(#000), napisałbyścolor: color-yiq(#000);.
Przegląd najważniejszych wydarzeń
- Wprowadzono nowe
pointer-eventszastosowanie na modalach. Zewnętrzna.modal-dialogprzechodzi przez zdarzenia zpointer-events: noneobsługą niestandardowego kliknięcia (umożliwiając po prostu nasłuchiwanie.modal-backdropwszelkich kliknięć), a następnie przeciwdziała temu rzeczywistemu.modal-contentza pomocąpointer-events: auto.
Streszczenie
Oto najważniejsze elementy biletu, o których warto wiedzieć, przechodząc z wersji 3 na wersję 4.
Obsługa przeglądarki
- Zrezygnowano z obsługi IE8, IE9 i iOS 6. v4 to teraz tylko IE10+ i iOS 7+. W przypadku witryn wymagających jednego z nich użyj wersji v3.
- Dodano oficjalne wsparcie dla przeglądarki Android v5.0 Lollipop i WebView. Wcześniejsze wersje przeglądarki Android i WebView pozostają tylko nieoficjalnie obsługiwane.
Zmiany globalne
- Flexbox jest domyślnie włączony. Ogólnie oznacza to odejście od pływaków i nie tylko w naszych komponentach.
- Zmieniono wersję Less na Sass dla naszych źródłowych plików CSS.
- Zmieniono
pxnaremnaszą podstawową jednostkę CSS, ale piksele są nadal używane do zapytań o media i zachowania siatki, ponieważ rozmiar typu nie ma wpływu na widoczne urządzenia. - Zwiększono globalny rozmiar czcionki z
14pxdo16px. - Zmieniono poziomy siatki, aby dodać piątą opcję (adresowanie do mniejszych urządzeń na
576pxi poniżej) i usunięto-xswrostek z tych klas. Przykład:.col-6.col-sm-4.col-md-3. - Zamieniono oddzielny motyw opcjonalny na opcje konfigurowalne za pomocą zmiennych SCSS (np
$enable-gradients: true. ). - Przebudowany system kompilacji, aby używać serii skryptów npm zamiast Grunta. Zobacz
package.jsonwszystkie skrypty lub nasz projekt readme dla potrzeb lokalnego rozwoju. - Niereagujące użycie Bootstrap nie jest już obsługiwane.
- Zrezygnowano z konfiguratora online na rzecz obszerniejszej dokumentacji konfiguracji i niestandardowych kompilacji.
- Dodano dziesiątki nowych klas narzędziowych dla typowych par właściwość-wartość CSS oraz skrótów dotyczących odstępów margines/dopełnienie.
System siatki
- Przeniesiono do flexboxa.
- Dodano wsparcie dla flexbox w mixinach siatki i predefiniowanych klasach.
- W ramach flexbox włączono obsługę klas wyrównania w pionie i poziomie.
- Zaktualizowano nazwy klas siatki i nowy poziom siatki.
- Dodano nowy
smpoziom siatki poniżej768px, aby uzyskać bardziej szczegółową kontrolę. Mamy terazxs,sm,md,lgixl. Oznacza to również, że każdy poziom został podniesiony o jeden poziom (więc.col-md-6w wersji 3 jest teraz.col-lg-6w wersji 4). xsklasy siatki zostały zmodyfikowane tak, aby nie wymagały, aby wrostek dokładniej wskazywał, że zaczynają stosować style odmin-width: 0wartości ustawionej w pikselach, a nie od niej. Zamiast.col-xs-6, jest teraz.col-6. Wszystkie inne warstwy siatki wymagają wrostka (npsm. ).
- Dodano nowy
- Zaktualizowano rozmiary siatki, domieszki i zmienne.
- Rynny siatki mają teraz mapę Sass, dzięki czemu można określić określone szerokości rynny w każdym punkcie przerwania.
- Zaktualizowano mieszankę siatkową, aby wykorzystać
make-col-readymieszankę przygotowawczą i a,make-colaby ustawićfleximax-widthdla indywidualnego rozmiaru kolumny. - Zmieniono punkty przerwania zapytań o media systemu siatki i szerokości kontenerów, aby uwzględnić nową warstwę siatki i zapewnić równomierne dzielenie kolumn przez
12przy ich maksymalnej szerokości. - Punkty przerwania siatki i szerokości kontenerów są teraz obsługiwane za pomocą map Sass (
$grid-breakpointsi$container-max-widths) zamiast kilku oddzielnych zmiennych. Zastępują one@screen-*całkowicie zmienne i pozwalają w pełni dostosować poziomy siatki. - Zapytania mediów również uległy zmianie. Zamiast powtarzać nasze deklaracje zapytań o media za każdym razem z tą samą wartością, mamy teraz
@include media-breakpoint-up/down/only. Teraz zamiast pisać@media (min-width: @screen-sm-min) { ... }, możesz pisać@include media-breakpoint-up(sm) { ... }.
składniki
- Porzucone panele, miniatury i zagłębienia dla nowego, wszechogarniającego komponentu, kart .
- Usunięto czcionkę ikony Glyphicons. Jeśli potrzebujesz ikon, niektóre opcje to:
- upstream wersja Glyphicons
- Octicons
- Czcionka niesamowita
- Zobacz stronę Rozszerzenie, aby uzyskać listę alternatyw. Masz dodatkowe sugestie? Otwórz zgłoszenie lub PR.
- Zrezygnowano z wtyczki Affix jQuery.
- Zalecamy użycie
position: stickyzamiast. Zobacz wpis HTML5, aby uzyskać szczegółowe informacje i konkretne zalecenia dotyczące wypełnienia. Jedną z sugestii jest użycie@supportsreguły do jej implementacji (np.@supports (position: sticky) { ... }) - Jeśli używasz afiksu do zastosowania dodatkowych, nie
positionbędących stylami, wypełnienia mogą nie obsługiwać twojego przypadku użycia. Jedną z opcji takich zastosowań jest biblioteka ScrollPos-Styler innej firmy.
- Zalecamy użycie
- Porzucono składnik pagera, ponieważ był to zasadniczo nieznacznie dostosowane przyciski.
- Zrefaktoryzowano prawie wszystkie komponenty, aby używać więcej niezagnieżdżonych selektorów klas zamiast nadmiernie określonych selektorów potomnych.
Według składnika
Ta lista przedstawia kluczowe zmiany według komponentów między wersjami 3.xx i 4.0.0.
Restart
Nowością w Bootstrap 4 jest Reboot , nowy arkusz stylów, który opiera się na Normalize z naszymi własnymi, nieco upartymi stylami resetowania. Selektory pojawiające się w tym pliku używają tylko elementów — nie ma tu żadnych klas. To izoluje nasze style resetowania od stylów komponentów, zapewniając bardziej modułowe podejście. Niektóre z najważniejszych resetów, które obejmują, to box-sizing: border-boxzmiana, przechodzenie od jednostek emdo remwielu elementów, style linków i wiele resetów elementów formularza.
Typografia
- Przeniesiono wszystkie
.text-narzędzia do_utilities.scsspliku. - Porzucono
.page-header, ponieważ jego style można zastosować za pomocą narzędzi. .dl-horizontalzostał upuszczony. Zamiast tego użyj.rowi<dl>użyj klas kolumn siatki (lub domieszek) na jego<dt>i elementach podrzędnych<dd>.- Przeprojektowane cytaty blokowe, przenosząc ich style z
<blockquote>elementu do jednej klasy,.blockquote. Usunięto.blockquote-reversemodyfikator dla narzędzi tekstowych. .list-inlineteraz wymaga, aby elementy listy podrzędnej miały.list-inline-itemdo nich zastosowaną nową klasę.
Obrazy
- Zmieniono nazwę
.img-responsivena.img-fluid. - Zmieniono nazwę
.img-roundedna.rounded - Zmieniono nazwę
.img-circlena.rounded-circle
Stoły
- Prawie wszystkie wystąpienia
>selektora zostały usunięte, co oznacza, że zagnieżdżone tabele będą teraz automatycznie dziedziczyć style od swoich rodziców. To znacznie upraszcza nasze selektory i potencjalne dostosowania. - Zmieniono nazwę
.table-condensedna.table-smspójność. - Dodano nową
.table-inverseopcję. - Dodano modyfikatory nagłówków tabeli:
.thead-defaulti.thead-inverse. - Zmieniono nazwy klas kontekstowych, aby miały
.table-prefiks -. Stąd.active,.success,.warning,.dangeri.infodo.table-active,.table-success,.table-warning,.table-dangeri.table-info.
Formularze
- Przeniesiony element resetuje się do
_reboot.scsspliku. - Zmieniono nazwę
.control-labelna.col-form-label. - Zmieniono nazwę odpowiednio na
.input-lgi.input-smna.form-control-lgi.form-control-sm. - Porzucone
.form-group-*klasy dla uproszczenia. Zamiast tego używaj.form-control-*klas. - Porzucono
.help-blocki zastąpiono.form-texttekstem pomocy na poziomie bloku. W przypadku tekstu pomocy wbudowanej i innych elastycznych opcji użyj klas narzędzi, takich jak.text-muted. - Zrezygnowano
.radio-inlinei.checkbox-inline. - Skonsolidowane
.checkboxi.radiopodzielone.form-checkna różne.form-check-*klasy. - Remont form poziomych:
- Zrezygnowano z
.form-horizontalwymagań klasowych. .form-groupnie stosuje już stylów z.rowdomieszki via, więc.rowjest teraz wymagane dla poziomych układów siatki (np<div class="form-group row">. ).- Dodano nową
.col-form-labelklasę do wyśrodkowania w pionie etykiet z.form-controls. - Dodano nowe
.form-rowdla kompaktowych układów formularzy z klasami siatki (zamień swój.rowna.form-rowi idź).
- Zrezygnowano z
- Dodano obsługę formularzy niestandardowych (dla pól wyboru, radia, zaznaczeń i danych wejściowych plików).
- Zastąpiono
.has-error,.has-warning, i.has-successklasy walidacją formularzy HTML5 za pomocą CSS:invalidi:validpseudoklas. - Zmieniono nazwę
.form-control-staticna.form-control-plaintext.
guziki
- Zmieniono nazwę
.btn-defaultna.btn-secondary. - Porzucił
.btn-xsklasę całkowicie, ponieważ.btn-smjest proporcjonalnie znacznie mniejsza niż v3. - Funkcja przycisku stanowego wtyczki
button.jsjQuery została usunięta. Obejmuje to metody$().button(string)i$().button('reset'). Radzimy zamiast tego użyć odrobiny niestandardowego kodu JavaScript, który będzie zachowywał się dokładnie tak, jak chcesz.- Zwróć uwagę, że inne funkcje wtyczki (pola wyboru przycisków, przyciski radiowe, przyciski pojedynczego przełączania) zostały zachowane w wersji 4.
- Zmień przyciski”
[disabled]na takie, jakie:disabledobsługuje IE9+:disabled. Jednakfieldset[disabled]nadal jest to konieczne, ponieważ natywne wyłączone zestawy pól są nadal wadliwe w IE11 .
Grupa przycisków
- Przepisano komponent z flexboxem.
- Usunięto
.btn-group-justified. Jako zamiennik możesz użyć<div class="btn-group d-flex" role="group"></div>jako wrappera wokół elementów z.w-100. - Porzucono
.btn-group-xsklasę całkowicie po usunięciu.btn-xs. - Usunięto wyraźne odstępy między grupami przycisków w paskach narzędzi przycisków; używaj narzędzi do marży teraz.
- Ulepszona dokumentacja do użytku z innymi komponentami.
Menu rozwijane
- Zmieniono selektory nadrzędne na pojedyncze klasy dla wszystkich komponentów, modyfikatorów itp.
- Uproszczone style rozwijane, które nie są już dostarczane ze strzałkami skierowanymi w górę lub w dół dołączonymi do menu rozwijanego.
- Listy rozwijane można teraz tworzyć za pomocą
<div>s lub<ul>s. - Przebudowane style rozwijane i znaczniki, aby zapewnić łatwą, wbudowaną obsługę
<a>i<button>oparte na rozwijanych elementach. - Zmieniono nazwę
.dividerna.dropdown-divider. - Pozycje rozwijane wymagają teraz
.dropdown-item. - Przełączniki rozwijane nie wymagają już wyraźnego
<span class="caret"></span>; jest to teraz dostarczane automatycznie przez CSS::afteron.dropdown-toggle.
System siatki
- Dodano nowy
576pxpunkt przerwania siatki jakosm, co oznacza, że istnieje teraz łącznie pięć poziomów (xs,sm,md,lgixl). - Zmieniono nazwę responsywnych klas modyfikatorów siatki z
.col-{breakpoint}-{modifier}-{size}na.{modifier}-{breakpoint}-{size}dla prostszych klas siatki. - Zrezygnowano z klas modyfikatorów push i pull dla nowych klas opartych na flexboksie
order. Na przykład zamiast.col-8.push-4i.col-4.pull-8użyjesz.col-8.order-2i.col-4.order-1. - Dodano klasy użyteczności flexbox dla systemu grid i komponentów.
Lista grup
- Przepisano komponent z flexboxem.
- Zastąpiona
a.list-group-itemjawną klasą ,.list-group-item-actiondo stylizowania wersji linków i przycisków elementów grupy list. - Dodano
.list-group-flushklasę do użytku z kartami.
Modalny
- Przepisano komponent z flexboxem.
- Biorąc pod uwagę przejście na flexbox, wyrównanie ikon odrzucania w nagłówku jest prawdopodobnie zepsute, ponieważ nie używamy już elementów pływających. Treść pływająca jest na pierwszym miejscu, ale w przypadku flexboxa już tak nie jest. Zaktualizuj ikony odrzucania, aby pojawiły się po tytułach modalnych, aby to naprawić.
- Opcja
remote(która mogła być używana do automatycznego ładowania i wstrzykiwania zawartości zewnętrznej do modu) i odpowiednieloaded.bs.modalzdarzenie zostały usunięte. Zamiast tego zalecamy korzystanie z szablonów po stronie klienta lub struktury wiązania danych albo samodzielne wywołanie jQuery.load .
Navs
- Przepisano komponent z flexboxem.
- Porzucono prawie wszystkie
>selektory, aby uprościć stylizację za pomocą niezagnieżdżonych klas. - Zamiast selektorów specyficznych dla HTML, takich jak
.nav > li > a, używamy oddzielnych klas dla.navs,.nav-items i.nav-links. Dzięki temu Twój kod HTML jest bardziej elastyczny, a jednocześnie zwiększa się jego rozszerzalność.
Pasek nawigacyjny
Pasek nawigacyjny został całkowicie przepisany w flexboksie z ulepszoną obsługą wyrównania, responsywności i dostosowywania.
- Responsywne zachowania paska nawigacyjnego są teraz stosowane do
.navbarklasy za pośrednictwem wymaganego.navbar-expand-{breakpoint}miejsca, w którym wybierasz miejsce zwinięcia paska nawigacyjnego. Wcześniej była to modyfikacja mniej zmienna i wymagała ponownej kompilacji. .navbar-defaultjest teraz.navbar-light, choć.navbar-darkpozostaje taka sama. Jeden z nich jest wymagany na każdym pasku nawigacyjnym. Jednak te klasy już nie ustawiająbackground-colors; zamiast tego zasadniczo wpływają tylko nacolor.- Paski nawigacyjne wymagają teraz pewnego rodzaju deklaracji w tle. Wybierz z naszych narzędzi tła (
.bg-*) lub ustaw własne, korzystając z powyższych klas światła/odwrotności, aby uzyskać szaloną personalizację . - Biorąc pod uwagę style flexbox, paski nawigacyjne mogą teraz używać narzędzi flexbox dla łatwych opcji wyrównania.
.navbar-togglejest teraz.navbar-toggleri ma różne style i wewnętrzne znaczniki (nie więcej trzech<span>s).- Całkowicie porzuciłem
.navbar-formklasę. Nie jest to już konieczne; zamiast tego po prostu używaj.form-inlinei stosuj narzędzia marginesowe w razie potrzeby. - Paski nawigacyjne nie zawierają już
margin-bottomaniborder-radiusdomyślnie. W razie potrzeby użyj narzędzi. - Wszystkie przykłady zawierające paski nawigacyjne zostały zaktualizowane i zawierają nowe znaczniki.
Paginacja
- Przepisano komponent z flexboxem.
- Klasy jawne (
.page-item,.page-link) są teraz wymagane na potomkach.paginations - Całkowicie usunięto
.pagerkomponent, ponieważ był to niewiele więcej niż niestandardowe przyciski konturu.
Bułka tarta
- Wyraźna klasa ,
.breadcrumb-itemjest teraz wymagana na potomkach.breadcrumbs
Etykiety i odznaki
- Skonsolidować
.labeli.badgeodróżnić od<label>elementu i uprościć powiązane komponenty. - Dodano
.badge-pilljako modyfikator dla zaokrąglonego wyglądu „pigułki”. - Plakietki nie są już automatycznie unoszone w grupach list i innych komponentach. Do tego potrzebne są teraz klasy użytkowe.
.badge-defaultzostał usunięty i.badge-secondarydodany w celu dopasowania klas modyfikatorów komponentów używanych gdzie indziej.
Panele, miniatury i studnie
Porzucone całkowicie dla nowego komponentu karty.
Panele
.paneldo.card, teraz zbudowany z flexbox..panel-defaultusunięte i bez wymiany..panel-groupusunięte i bez wymiany..card-groupnie jest zamiennikiem, jest inaczej..panel-headingdo.card-header.panel-titledo.card-title. W zależności od pożądanego wyglądu możesz również chcieć użyć elementów lub klas nagłówków (np<h3>. ,.h3) lub elementów lub klas pogrubionych (np<strong>. ,<b>,.font-weight-bold). Zauważ, że.card-title, chociaż podobnie nazwany, daje inny wygląd niż.panel-title..panel-bodydo.card-body.panel-footerdo.card-footer.panel-primary,.panel-success,.panel-info,.panel-warningi.panel-dangerzostały porzucone dla.bg-,.text-, oraz.bordernarzędzi wygenerowanych z naszej$theme-colorsmapy Sass.
Postęp
- Zastąpiono
.progress-bar-*klasy kontekstowe.bg-*narzędziami. Na przykładclass="progress-bar progress-bar-danger"staje sięclass="progress-bar bg-danger". - Zastąpiono
.activeanimowane paski postępu przez.progress-bar-animated.
Karuzela
- Przerobiliśmy cały komponent, aby uprościć projektowanie i stylizację. Mamy mniej stylów do zastąpienia, nowe wskaźniki i nowe ikony.
- Wszystkie CSS zostały rozgnieżdżone i zmieniono ich nazwy, zapewniając, że każda klasa ma przedrostek
.carousel-.- W przypadku elementów karuzeli ,
.next,.prev,.lefti.rightsą teraz.carousel-item-next,.carousel-item-prev,.carousel-item-left, i.carousel-item-right. .itemjest również teraz.carousel-item.- W przypadku kontrolek prev/next są teraz
.carousel-control.righti , co oznacza, że nie wymagają już określonej klasy bazowej..carousel-control.left.carousel-control-next.carousel-control-prev
- W przypadku elementów karuzeli ,
- Usunięto wszystkie responsywne style, odnoszące się do narzędzi (np. wyświetlanie podpisów w niektórych rzutniach) i niestandardowe style w razie potrzeby.
- Usunięto nadpisania obrazów dla obrazów w elementach karuzeli, odnosząc się do narzędzi.
- Poprawiono przykład karuzeli, aby uwzględnić nowe znaczniki i style.
Stoły
- Usunięto obsługę stylizowanych tabel zagnieżdżonych. Wszystkie style tabel są teraz dziedziczone w wersji 4 dla prostszych selektorów.
- Dodano wariant tabeli odwrotnej.
Narzędzia
- Wyświetlaj, ukrywaj i nie tylko:
- Uaktywniono narzędzia wyświetlania (np.
.d-noneid-{sm,md,lg,xl}-none). - Zrezygnowano z większości
.hidden-*narzędzi dla nowych narzędzi wyświetlania . Na przykład zamiast.hidden-sm-up, użyj.d-sm-none. Zmieniono nazwy.hidden-printnarzędzi, aby korzystały ze schematu nazewnictwa narzędzi wyświetlania. Więcej informacji można znaleźć w sekcji Responsywne narzędzia na tej stronie. - Dodano
.float-{sm,md,lg,xl}-{left,right,none}klasy dla responsywnych elementów pływających i usunięto je.pull-left,.pull-rightponieważ są one nadmiarowe w.float-lefti.float-right.
- Uaktywniono narzędzia wyświetlania (np.
- Rodzaj:
- Dodano responsywne odmiany do naszych klas wyrównania tekstu
.text-{sm,md,lg,xl}-{left,center,right}.
- Dodano responsywne odmiany do naszych klas wyrównania tekstu
- Wyrównanie i odstępy:
- Dodano nowe narzędzia do responsywnych marginesów i dopełniania dla wszystkich stron, a także skrócone pionowe i poziome.
- Dodano mnóstwo narzędzi flexbox .
- Wypada
.center-blockz nowej.mx-autoklasy.
- Zaktualizowano Clearfix, aby usunąć obsługę starszych wersji przeglądarek.
Mieszanki prefiksu dostawcy
Mieszanki prefiksów dostawcy Bootstrap 3 , które zostały przestarzałe w wersji 3.2.0, zostały usunięte w Bootstrap 4. Ponieważ używamy Autoprefixera , nie są już potrzebne.
Usunięto następujące mixiny: animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-timing-function, backface-visibility, box-sizing, content-columns, hyphens, opacity, perspective, perspective-origin, rotate, rotateX, rotateY, scale, scaleX, scaleY, skew, transform-origin, transition-delay, transition-duration, transition-property, transition-timing-function, transition-transform, translate, translate3d,user-select
Dokumentacja
Nasza dokumentacja również została uaktualniona. Oto dół:
- Nadal używamy Jekyll, ale mamy w miksie wtyczki:
bugify.rbsłuży do efektywnego wyświetlania wpisów na naszej stronie z błędami przeglądarki .example.rbjest niestandardowym rozwidleniem domyślnejhighlight.rbwtyczki, pozwalającym na łatwiejszą obsługę przykładowego kodu.callout.rbjest podobnym niestandardowym widelcem, ale zaprojektowanym z myślą o naszych specjalnych objaśnieniach w dokumentach.- jekyll-toc służy do generowania naszego spisu treści.
- Cała zawartość dokumentów została przepisana w języku Markdown (zamiast HTML), aby ułatwić edycję.
- Strony zostały zreorganizowane w celu uproszczenia treści i bardziej przystępnej hierarchii.
- Przeszliśmy od zwykłego CSS do SCSS, aby w pełni wykorzystać zmienne, domieszki i nie tylko Bootstrapa.
Responsywne narzędzia
Wszystkie @screen-zmienne zostały usunięte w wersji 4.0.0. Zamiast tego użyj domieszek media-breakpoint-up(), media-breakpoint-down(), media-breakpoint-only()Sass lub $grid-breakpointsmapy Sass.
Nasze responsywne klasy użyteczności zostały w dużej mierze usunięte na rzecz jawnych displaynarzędzi.
- Klasy
.hiddeni.showzostały usunięte, ponieważ kolidowały z metodami$(...).hide()i jQuery.$(...).show()Zamiast tego spróbuj przełączyć[hidden]atrybut lub użyj stylów wbudowanych, takich jakstyle="display: none;"istyle="display: block;". - Wszystkie
.hidden-klasy zostały usunięte, z wyjątkiem narzędzi drukowania, których nazwy zostały zmienione.- Usunięto z wersji 3:
.hidden-xs.hidden-sm.hidden-md.hidden-lg.visible-xs-block.visible-xs-inline.visible-xs-inline-block.visible-sm-block.visible-sm-inline.visible-sm-inline-block.visible-md-block.visible-md-inline.visible-md-inline-block.visible-lg-block.visible-lg-inline.visible-lg-inline-block - Usunięto z wersji alfa v4:
.hidden-xs-up.hidden-xs-down.hidden-sm-up.hidden-sm-down.hidden-md-up.hidden-md-down.hidden-lg-up.hidden-lg-down
- Usunięto z wersji 3:
- Narzędzia drukowania nie zaczynają się już od
.hidden-lub.visible-, ale od.d-print-.- Stare nazwy:
.visible-print-block,.visible-print-inline,.visible-print-inline-block,.hidden-print - Nowe zajęcia:
.d-print-block,.d-print-inline,.d-print-inline-block,.d-print-none
- Stare nazwy:
Zamiast używać jawnych .visible-*klas, tworzysz element widoczny, po prostu nie ukrywając go w tym rozmiarze ekranu. Możesz połączyć jedną .d-*-noneklasę z jedną .d-*-blockklasą, aby pokazać element tylko na zadanym interwale rozmiarów ekranu (np .d-none.d-md-block.d-xl-none. pokazuje element tylko na średnich i dużych urządzeniach).
Zwróć uwagę, że zmiany w punktach przerwania siatki w wersji 4 oznaczają, że będziesz musiał zwiększyć o jeden punkt przerwania, aby osiągnąć te same wyniki. Nowe responsywne klasy narzędziowe nie próbują uwzględniać mniej typowych przypadków, w których widoczność elementu nie może być wyrażona jako pojedynczy ciągły zakres rozmiarów okienka ekranu; w takich przypadkach będziesz musiał użyć niestandardowego CSS.